{'fraction_non_alphanumeric': 0.010398613518197574, 'fraction_numerical': 0.0, 'mean_word_length': 5.2771739130434785, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Handling Database Schema Variability in Software Product Lines

Managing variability in a software family is crucial to software product line engineering. The existing variability management techniques, however do not particularly address database design in the context of information systems poduct lines. This paper presents a practical approach to handle variability in database design for families of software. We use the technique of Delta-Oriented Programming when a product is constructed by adding a number of delta modules to a core module incrementally, based on the features selected in the product configuration. We use SQL Data Definition Language to model core and delta modules. We present rules for consistency checking of the delta scripts based on the database consistency constraints to generate a valid consistent database schema for the product. Also we analyze the cases in which a conflict arises based on inconsistencies between delta modules. The fact that DDL is widely known to software developers, along with modularity and scalability of the proposed method makes it suitable to be used in industrial real world applications.