CMS445

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 12

CMS 435 QUESTIONS

Find the possibility of dropping a parent table while the child or dependent table is still in Existence

In a relational database, a child or dependent table is one that has a foreign key reference to a parent
table. When the parent table is dropped, any child tables that reference it will be affected. The
possibility of dropping a parent table while the child table is still in existence depends on the database
management system (DBMS) being used and the specific configuration of the tables.

In most DBMSs, attempting to drop a parent table while a child table still exists will result in an error or
warning message indicating that the action is not allowed. This is because dropping the parent table
would leave the child table without a reference to its primary key, causing data inconsistencies and
possibly rendering the child table unusable.

However, some DBMSs may allow the parent table to be dropped if certain conditions are met. For
example, if the child table has a foreign key constraint with the "ON DELETE CASCADE" option, which
automatically deletes the child rows when the parent rows are deleted, then the parent table may be
dropped without issue. Similarly, some DBMSs may allow the parent table to be dropped if all foreign
key constraints on the child table are first removed.

In any case, dropping a parent table while a child table still exists should be done with caution, as it can
have serious consequences for the integrity and functionality of the database. It is generally
recommended to consult the documentation and/or seek the advice of a database administrator before
attempting to drop a parent table in the presence of a child table.

Write an SQL Statement

SELECT first_name, last_name, email

FROM users

WHERE age > 18

ORDER BY last_name ASC;

Define Stored Procedures


A stored procedure is a precompiled and stored SQL code block that can be executed repeatedly with
different input values. It is stored in a database and can be accessed and executed by authorized users.
Stored procedures can be used to encapsulate complex SQL logic, improve performance, and enforce
security and data integrity rules. They can also be used to reduce network traffic by reducing the
number of round trips between the application and the database server. Stored procedures can be
created using SQL or other programming languages such as PL/SQL, T-SQL, or Java. They can be called
from applications, triggers, or other stored procedures.

The syntax for creating Stored Procedures

CREATE PROCEDURE procedure_name

[parameter data type] [parameter name] [= default value], [parameter data type] [parameter name]
[= default value], ...

AS

BEGIN

-- SQL statements to be executed

END

What are triggers

In general, a trigger is an event or a condition that causes a specific action or response to occur. In the
context of computing and software development, a trigger refers to a piece of code or a program that is
executed automatically in response to a certain event or condition.

Triggers are often used in databases to automate certain tasks, such as updating records or generating
reports. For example, a trigger might be set up to automatically update a customer's record when they
make a purchase, or to send an email notification to the sales team when a new lead is added to the
system.

Triggers can also be used in software development to automate testing or deployment tasks. For
example, a trigger might be set up to automatically run a suite of tests when a code change is made, or
to automatically deploy new code to a production environment when it passes a certain set of tests.

Overall, triggers can be a powerful tool for automating repetitive or time-consuming tasks, and can help
improve the efficiency and accuracy of software systems.

What are assertions

Assertions in a database management system (DBMS) are constraints or rules that are defined by the
database administrator to ensure that the data stored in the database satisfies certain conditions or
requirements.
An assertion is a logical expression that evaluates to either true or false based on the current state of
the database. When an assertion is defined in a DBMS, the system periodically checks the database to
ensure that the assertion is satisfied. If the assertion evaluates to false, the system can trigger an error
message or take some other action to enforce the constraint.

Assertions are typically used to enforce business rules or other requirements that cannot be easily
expressed using standard constraints such as primary keys, foreign keys, or check constraints. For
example, an assertion might be defined to ensure that the total amount of all orders for a particular
customer does not exceed their credit limit.

Assertions can be defined using SQL or other database-specific languages. They are an important tool for
ensuring data integrity and consistency in a DBMS.

Difference Between Triggers and Assertions

Triggers and assertions are both mechanisms used to enforce rules and constraints in a database
management system (DBMS), but they operate in different ways and are designed for different
purposes.

1. Triggers:

A trigger is a database object that automatically executes a set of instructions when a specific event
occurs in the database. The event can be an insert, update, or delete operation on a table. A trigger can
be used to enforce business rules, audit database changes, or perform other automated actions.
Triggers can be defined to execute either before or after the event occurs.

2. Assertions:

An assertion is a logical condition that must always be true in a database. It is a constraint that is
checked whenever a transaction is committed. Assertions are used to ensure data integrity and
consistency in the database. Unlike triggers, assertions are not associated with a specific event or action.

In summary, triggers are used to execute a specific set of instructions when a particular event occurs in
the database, while assertions are used to enforce a logical condition that must always be true in the
database.

Discuss In Details With Examples data Definition In MYSQL

MySQL is a popular relational database management system that is used to store, manage, and retrieve
data. In MySQL, data is organized into tables, which are made up of columns and rows. Before we can
store data in a table, we must first define the table's structure, or schema. In MySQL, this is done using
data definition statements. Here are 10 common data definition statements in MySQL:

1. CREATE TABLE - This statement is used to create a new table in the database. Here's an example:
CREATE TABLE employees (

id INT NOT NULL AUTO_INCREMENT,

name VARCHAR(50) NOT NULL,

age INT NOT NULL,

PRIMARY KEY (id)

);

This statement creates a table named "employees" with three columns: "id", "name", and "age". The
"id" column is defined as an auto-incrementing integer and is designated as the table's primary key.

2. ALTER TABLE - This statement is used to modify an existing table's structure. Here's an example:

ALTER TABLE employees ADD COLUMN salary DECIMAL(10,2);

This statement adds a new column named "salary" to the "employees" table. The column is defined as
a decimal number with 10 digits, two of which are after the decimal point.

3. DROP TABLE - This statement is used to delete a table from the database. Here's an example:

DROP TABLE employees;

This statement deletes the "employees" table from the database.

4. PRIMARY KEY - This statement is used to define the primary key for a table. Here's an example:

CREATE TABLE employees (

id INT NOT NULL,

name VARCHAR(50) NOT NULL,

age INT NOT NULL,

PRIMARY KEY (id)

);

This statement creates a table named "employees" with three columns. The "id" column is designated
as the table's primary key.

5. UNIQUE - This statement is used to define a unique constraint on a column or group of columns.
Here's an example:

CREATE TABLE employees (


id INT NOT NULL,

name VARCHAR(50) NOT NULL,

email VARCHAR(50) NOT NULL UNIQUE,

age INT NOT NULL

);

This statement creates a table named "employees" with four columns. The "email" column is defined
as unique, meaning that each value in the column must be unique.

6. NOT NULL - This statement is used to specify that a column cannot contain null values. Here's an
example:

CREATE TABLE employees (

id INT NOT NULL,

name VARCHAR(50) NOT NULL,

email VARCHAR(50) NOT NULL,

age INT NOT NULL

);

This statement creates a table named "employees" with four columns. Each column is defined as "not
null", meaning that each column must contain a value.

7. DEFAULT - This statement is used to specify a default value for a column. Here's an example:

CREATE TABLE employees (

id INT NOT NULL,

name VARCHAR(50) NOT NULL,

email VARCHAR(50) NOT NULL,

age INT NOT NULL DEFAULT 18

);
This statement creates a table named "employees" with four columns. The "age" column is defined
with a default value of 18, meaning that if no value is specified for the column, it will default to 18.

8. CHECK - This statement is used to specify a check constraint on a column. Here's an example:

CREATE TABLE employees (

id INT NOT NULL,

name VARCHAR(50) NOT

Some Functions and Syntax in MYSQL

MySQL is a powerful relational database management system that provides a wide range of functions
and syntax for working with data. Here are some common functions and syntax in MySQL:

1. SELECT - This statement is used to retrieve data from a database table. Here's an example:

SELECT * FROM employees;

This statement retrieves all columns from the "employees" table.

2. WHERE - This statement is used to filter data based on a condition. Here's an example:

SELECT * FROM employees WHERE age > 30;

This statement retrieves all columns from the "employees" table where the age is greater than 30.

3. ORDER BY - This statement is used to sort data by a column. Here's an example:

SELECT * FROM employees ORDER BY name ASC;

This statement retrieves all columns from the "employees" table and sorts them in ascending order
based on the "name" column.

4. GROUP BY - This statement is used to group data based on a column. Here's an example:

SELECT department, COUNT(*) FROM employees GROUP BY department;

This statement groups the data in the "employees" table by department and counts the number of
employees in each department.

5. JOIN - This statement is used to combine data from multiple tables. Here's an example:

SELECT employees.name, departments.name FROM employees JOIN departments ON


employees.department_id = departments.id;
This statement joins the "employees" and "departments" tables based on the "department_id" and
"id" columns, respectively, and retrieves the names of employees and their departments.

6. INSERT INTO - This statement is used to insert data into a table. Here's an example:

INSERT INTO employees (name, age, department_id) VALUES ('John Doe', 35, 1);

This statement inserts a new record into the "employees" table with the name "John Doe", age "35",
and department ID "1".

7. UPDATE - This statement is used to update data in a table. Here's an example:

UPDATE employees SET age = 40 WHERE name = 'John Doe';

This statement updates the "age" column in the "employees" table to "40" for the record with the
name "John Doe".

8. DELETE FROM - This statement is used to delete data from a table. Here's an example:

DELETE FROM employees WHERE age > 60;

This statement deletes all records from the "employees" table where the age is greater than 60.

9. COUNT - This function is used to count the number of rows in a table. Here's an example:

SELECT COUNT(*) FROM employees;

This statement returns the total number of rows in the "employees" table.

10. AVG - This function is used to calculate the average value of a column. Here's an example:

SELECT AVG(salary) FROM employees;

This statement returns the average value of the "salary" column in the "employees" table.

The Concept of Data Definition and Manipulation

Data Definition and Manipulation are two important concepts in database management systems.

Data Definition refers to the process of creating, modifying, and deleting the structure of a database.
This includes defining the tables, fields, relationships, constraints, and other attributes of the database.
The main purpose of data definition is to ensure that the database is well-structured, organized, and
able to store and retrieve data efficiently.

Data Manipulation, on the other hand, refers to the process of querying, inserting, updating, and
deleting data within a database. This involves using commands and statements to extract or modify data
stored in the database. Data manipulation is essential for managing and processing the data within the
database, and it is typically performed using SQL (Structured Query Language) commands.

Together, Data Definition and Manipulation form the core components of a database management
system, and are crucial for ensuring that the database is accurate, reliable, and efficient. Effective use of
these concepts allows organizations to manage their data effectively, make informed decisions, and
maintain a competitive edge.

Discuss Transaction State

In database management systems, a transaction refers to a sequence of database operations that are
executed as a single logical unit of work. These operations are treated as a single indivisible entity, and
are either completed in their entirety or not at all. The concept of transaction state refers to the various
stages that a transaction goes through during its lifecycle.

There are generally three main states of a transaction:

1. Active State: In this state, the transaction is in progress and the database operations are being
executed. The transaction remains in the active state until all the operations within the transaction have
been completed.

2. Partially Committed State: Once all the operations within the transaction have been executed, the
transaction moves to the partially committed state. In this state, the database system ensures that all
the constraints and rules of the database are adhered to, and that the changes made by the transaction
are consistent with the database. If the database system detects any inconsistencies or conflicts, the
transaction is rolled back to its initial state and the changes are not committed.

3. Committed State: If the transaction passes all the consistency checks and is found to be valid, it is
committed to the database and moves to the committed state. In this state, the changes made by the
transaction become permanent and can be accessed by other transactions.

In addition to these three main states, there is also a fourth state known as the aborted or rolled back
state. This state is entered when a transaction encounters an error or is intentionally aborted by the
user. In this state, all the changes made by the transaction are rolled back, and the database is restored
to its previous state before the transaction began.

In conclusion, transaction state is an important concept in database management systems, as it ensures


that the database remains consistent and reliable even when multiple transactions are being executed
concurrently. By understanding the various states of a transaction, database administrators can better
manage and monitor database operations to ensure that data integrity is maintained.

Define Distributed systems


A distributed database system is a database system in which data is stored and processed across
multiple computers in a network. In a distributed system, data is distributed across multiple sites, and
each site may have its own local database management system (DBMS) that can interact with other
DBMSs to share data and coordinate transactions.

The primary goal of a distributed database system is to achieve data availability, fault tolerance, and
scalability. By distributing data across multiple nodes, the system can continue to operate even if one or
more nodes fail, and the system can handle large volumes of data and user requests by adding
additional nodes to the system.

In a distributed database system, data is typically partitioned and replicated across multiple nodes, and
each node is responsible for managing a subset of the data. The system may use various techniques for
distributing data, including horizontal partitioning, vertical partitioning, and hybrid partitioning.

A distributed database system requires sophisticated software to manage the distribution, coordination,
and consistency of data across nodes. Examples of distributed database systems include Oracle RAC,
Microsoft SQL Server Cluster, and Apache Cassandra.

State the Advantage of Distributed Systems Over Centralised Systems

Distributed systems have several advantages over centralized systems, including:

1. Increased reliability: Since a distributed system consists of multiple nodes, if one node fails, the
system can continue to operate without interruption. In a centralized system, if the central server fails,
the entire system becomes unavailable.

2. Scalability: Distributed systems can be scaled horizontally by adding more nodes to the network,
which allows for increased processing power and storage capacity. This is much easier than scaling up a
centralized system, which may require replacing the entire server infrastructure.

3. Improved performance: Distributed systems can perform tasks in parallel, which means that multiple
nodes can work on different parts of a problem simultaneously. This can result in faster processing times
and improved response times.

4. Reduced cost: Distributed systems can be built using commodity hardware, which is often less
expensive than the specialized hardware required for a centralized system. Additionally, distributed
systems can be run on a cloud platform, which can be more cost-effective than building and maintaining
a centralized system.

5. Better fault tolerance: Distributed systems can detect and isolate faults in individual nodes,
preventing them from affecting the entire system. This means that the system can continue to operate
even if some nodes fail or become unavailable.
Overall, distributed systems offer increased reliability, scalability, performance, reduced cost, and better
fault tolerance over centralized systems.

Discuss in details fragmentation techniques in distributed systems, vertical and horizontal


fragmentation with examples

In distributed systems, data fragmentation is a technique used to split data into smaller, more
manageable pieces that can be distributed across multiple nodes or servers. This is done to improve
performance, scalability, and fault tolerance. There are two primary forms of fragmentation in
distributed systems: vertical fragmentation and horizontal fragmentation.

Vertical Fragmentation:

Vertical fragmentation divides a table into smaller vertical subsets based on columns. In this approach,
each subset contains only a portion of the columns for each row. This technique is typically used when
the attributes in the table have different access patterns and different levels of sensitivity. Vertical
fragmentation can help to reduce data redundancy, as each subset only contains the relevant data.

For example, let's consider a customer table with the following attributes: name, address, email, phone
number, and credit card details. Vertical fragmentation can be used to split this table into two subsets: a
public subset and a sensitive subset. The public subset can include attributes like name, address, and
email, while the sensitive subset can include attributes like phone number and credit card details. This
can help to improve the security of the data by restricting access to sensitive information.

Horizontal Fragmentation:

Horizontal fragmentation divides a table into smaller subsets based on rows. In this approach, each
subset contains only a portion of the rows in the table. This technique is typically used when the data in
the table is too large to be stored on a single server or node. Horizontal fragmentation can help to
improve performance by allowing queries to be executed in parallel on multiple servers.

For example, let's consider a sales table with the following attributes: product, quantity, price, and date.
Horizontal fragmentation can be used to split this table into subsets based on the date attribute. For
example, the sales data for each month can be stored on a separate server or node. This can help to
improve performance by allowing queries to be executed in parallel on multiple servers.

In summary, fragmentation techniques in distributed systems are used to split data into smaller, more
manageable pieces that can be distributed across multiple nodes or servers. Vertical fragmentation
divides a table into smaller vertical subsets based on columns, while horizontal fragmentation divides a
table into smaller subsets based on rows. Both techniques can help to improve performance, scalability,
and fault tolerance in distributed systems.
What is functional Dependency with 2 Examples to illustrate it

Functional dependency is a term used in database management systems to describe the relationship
between two attributes or columns in a table. In a functional dependency, the value of one attribute
determines the value of another attribute in the same table.

Here are two examples to illustrate functional dependency:

1. Employee table:

Consider an employee table with the following attributes:

Employee_ID

Name

Salary

In this table, we can say that the salary is functionally dependent on the employee ID. This means that
for a given employee ID, there is only one possible salary value. Therefore, the employee ID determines
the salary.

2. Customer table:

Consider a customer table with the following attributes:

Customer_ID

Name

Address

Phone_Number

In this table, we can say that the address is functionally dependent on the customer ID. This means that
for a given customer ID, there is only one possible address value. Therefore, the customer ID determines
the address.

These are just two examples of functional dependency, but it is a fundamental concept in database
design and is used extensively in relational database management systems.

Discuss the Armstrong Azums


The Armstrong Azumah theorem, also known as the Armstrong's axioms, is a set of axioms used in
database normalization. It was developed by William W. Armstrong in 1974, and later refined by Michael
J. Carey and David J. DeWitt.

The theorem is concerned with the concept of functional dependencies, which are relationships
between attributes in a database table. A functional dependency states that for a given set of attributes
in a table, the values of one or more of those attributes determine the values of one or more of the
other attributes.

The Armstrong Azumah theorem consists of three axioms:

1. Reflexivity: If Y is a subset of X, then X -> Y. This means that any set of attributes can determine its
own subset.

2. Augmentation: If X -> Y, then XZ -> YZ, for any set of attributes Z. This means that if a set of attributes
determines another set, then the first set plus any additional attributes also determines the second set
plus those same additional attributes.

3. Transitivity: If X -> Y and Y -> Z, then X -> Z. This means that if one set of attributes determines
another, and that second set determines a third, then the first set also determines the third.

Together, these axioms provide a way to determine all of the functional dependencies that exist in a
database table. By applying them repeatedly, it is possible to derive a set of minimal functional
dependencies, which can be used to normalize the table and eliminate redundancies.

The Armstrong Azumah theorem is a fundamental tool in database design and is widely used in the field
of computer science. It provides a rigorous mathematical foundation for understanding the relationships
between attributes in a database table, and it helps ensure that databases are structured in a way that is
efficient, effective, and easy to use.

MAKE UNA USE THIS ONE GUIDE...

You might also like