Database Management Systems: Concepts and Components
Definition of a Database Management System (DBMS)
A DBMS is an application that allows users to define, create, and maintain the database (DB) and provide controlled access to it.
Services Provided by a DBMS
- Creation and definition of the database.
- Manipulating data using queries, inserts, and updates via data manipulation languages.
- Controlled access to data through security mechanisms for user access.
- Maintaining the integrity and consistency of the data using mechanisms to prevent data from being damaged by unauthorized changes.
- Shared access to the database.
- Mechanisms for backup and recovery to restore information in case of system failures.
Components of a DBMS
- DBMS Language
- Allows the database administrator to specify the data that make up the DB.
- Data Dictionary
- This is where information is stored regarding all data that forms the database (metadata).
- Security and Data Integrity
- Mechanisms implemented to ensure the protection and consistency of data.
- Members (Users)
- Users are typically classified into categories such as DBA (Database Administrator), RESOURCE, and CONNECT.
- DBMS Tools
- Software utilities that allow administrators to manage the database effectively.
What Are Data Models and Their Purpose?
A data model is a concept or set of conceptual tools that describe the structure of a database, including the data, relationships, and constraints that must be met by the data.
Client/Server Architecture and Configurations
The client/server architecture is divided into two main parts: a server and a set of clients.
The server is typically a powerful computer that acts as a data repository and performs all the functions of a DBMS. The client is a workstation or PC that requests services from the server.
Client/Server Configurations
- Based on Host
- Client/Server
- Distributed Processing
- Service-Based Applications
The LOPD: Personal Data Protection Law
The LOPD (Organic Law on Personal Data Protection) aims to guarantee and protect, with regard to the processing of personal data and public directories, the fundamental rights of individuals, especially their honor, privacy, and personal and family privacy.
Key Elements of the Entity-Relationship (ER) Model
The two most important elements of the ER model are the Entity and the Relationship:
- Entity
- It is a real-world object that is of interest to the organization. Each entity is identified by a name (e.g., the entity PUPILS of a school or CUSTOMERS of a bank). Entities are typically represented using rectangles.
- Relationship
- Is the association between two or more entities. Relationships are named using verbs that identify the connection between entities. Relationships usually do not have attributes (though they can in some models).
Defining Characteristics of the Relational Model
The relational model is characterized by:
- Physical Independence: The mode of data storage should not affect the logical handling of the data.
- Logical Data Independence: Changes made to objects in the database should not affect the programs and users accessing it.
- Flexibility: Allows users to represent data in the most appropriate way for the application being used.
- Uniformity: Achieved through the presentation of logical data structures as tables, which facilitates the design and manipulation of the database by users.
- Simplicity: Due to the characteristics above and the use of simple user languages, this model is easy for the user to understand and utilize.
Semantic Constraints in the Relational Model
The relational model enforces several semantic constraints:
-
Primary Key Constraint (
PRIMARY KEY
): Allows declaring one or more attributes as the primary key of a relation (table). -
Uniqueness Constraint (
UNIQUE
): Used to define alternative keys. The attribute values cannot be repeated. -
Mandatory Constraint (
NOT NULL
): Allows declaring that one or more attributes cannot take null values. - Referential Integrity Constraint (Foreign Key): Used to link relations through foreign keys within a database.