RDBMS介绍 | 青训营

70 阅读5分钟

RDBMS介绍

关系数据库管理系统(RDBMS)是一种用于管理和组织结构化数据的软件系统。它是基于关系模型的,关系模型是由爱德加·科德(Edgar Codd)在20世纪70年代初提出的。RDBMS 可以有效地存储、检索、更新和管理数据,使其成为许多应用程序和系统的核心组件,从企业级应用到个人项目都广泛使用。

以下是一些 RDBMS 的主要特点和概念:

表格(Tables):

数据以表格的形式存储,表格由行和列组成。每一行表示一个记录(记录可以是一个实体,如客户、订单等),每一列表示一个属性(属性可以是实体的特征,如姓名、年龄等)。

关系(Relationships):

RDBMS 允许在不同表格之间建立关系。关系通过外键(Foreign Key)建立,外键是一个指向其他表格主键的列,用于建立表格之间的连接。

主键(Primary Key):

每个表格都有一个主键,它是唯一标识表格中每个记录的一列或一组列。主键确保数据的唯一性和识别性。

SQL(Structured Query Language):

SQL 是一种用于管理和查询数据库的语言。通过 SQL,用户可以创建表格、插入、更新和删除数据,以及进行复杂的查询和分析操作。

数据完整性(Data Integrity):

RDBMS 支持数据完整性,确保数据的准确性和一致性。数据完整性规则包括唯一性约束、非空约束、外键约束等。

事务(Transactions):

事务是一组操作的集合,要么全部执行成功,要么全部失败,以保持数据的一致性和完整性。事务遵循 ACID(原子性、一致性、隔离性、持久性)属性,确保数据库在任何情况下都保持稳定。

查询优化(Query Optimization):

RDBMS 会优化查询以提高性能。它会分析查询语句,选择最有效的执行计划来获取结果。

并发控制(Concurrency Control):

RDBMS 允许多个用户同时访问数据库,因此需要实施并发控制以避免数据混乱。并发控制确保事务在不干扰其他事务的情况下同时进行。

备份和恢复(Backup and Recovery):

RDBMS 提供备份和恢复机制,以防止数据丢失。定期备份可以保护数据免受硬件故障、人为错误或其他灾难性事件的影响。常见的 RDBMS 包括 MySQL、Oracle Database、Microsoft SQL Server、PostgreSQL 等。接下来我们将给出一些实际使用的例子。

SQL使用:

下面是一个简单的图书管理系统的例子,包括创建表格、插入数据、查询图书和借阅记录等操作的 SQL 示例:

建表(CREATE TABLE):

-- 创建图书表格
CREATE TABLE Books (
    book_id INT PRIMARY KEY,
    title VARCHAR(100),
    isbn VARCHAR(13),
    publication_date DATE,
    author_id INT,
    stock_quantity INT
);

-- 创建作者表格
CREATE TABLE Authors (
    author_id INT PRIMARY KEY,
    name VARCHAR(100),
    birth_date DATE,
    nationality VARCHAR(50)
);

-- 创建用户表格
CREATE TABLE Users (
    user_id INT PRIMARY KEY,
    username VARCHAR(50),
    password VARCHAR(50),
    contact_info VARCHAR(100)
);

-- 创建借阅记录表格
CREATE TABLE Borrowing_Records (
    record_id INT PRIMARY KEY,
    user_id INT,
    book_id INT,
    borrowing_date DATE,
    return_date DATE
);

接下来我将讲解一下各个字段的意思我将通过Books表格作为例子进行讲解:

Books 表格:这个表格用于存储图书的信息。

book_id: 一个整数类型的主键,用来唯一标识每本图书。

title: 一个最大长度为 100 的字符串类型,用来存储图书的标题。

isbn: 一个最大长度为 13 的字符串类型,用来存储图书的 ISBN 号。

publication_date: 一个日期类型,用来存储图书的出版日期。

author_id: 一个整数类型,作为外键关联到 Authors 表格中的 author_id,用来标识图书的作者。

stock_quantity: 一个整数类型,用来表示图书的库存数量。

插入数据(INSERT INTO):

-- 插入作者数据
INSERT INTO Authors (author_id, name, birth_date, nationality)
VALUES (1, 'J.K. Rowling', '1965-07-31', 'British');

-- 插入图书数据
INSERT INTO Books (book_id, title, isbn, publication_date, author_id, stock_quantity)
VALUES (1, 'Harry Potter and the Sorcerers Stone','978-0590353427', '1997-06-26', 1, 50);

-- 插入用户数据
INSERT INTO Users (user_id, username, password, contact_info)
VALUES (1, 'user123', 'password123', 'user@example.com');

我们用Authors表格作为例子解释一下。这个语句将在 Authors 表格中插入一行数据。每个值都对应了表格中的一个列,按照顺序依次插入。具体解释如下:

author_id: 值为 1,将作为主键标识插入的作者。

name: 值为 'J.K. Rowling',表示作者的姓名。

birth_date: 值为 '1965-07-31',表示作者的出生日期。

nationality: 值为 'British',表示作者的国籍。

查询数据(SELECT):

-- 查询所有图书
SELECT * FROM Books;
-- 查询作者为 'J.K. Rowling' 的图书
SELECT * FROM Books WHERE author_id = 1;
-- 查询借阅记录
SELECT * FROM Borrowing_Records;

我们以SELECT * FROM Books WHERE author_id = 1;为例解释一下这段代码的意思。SELECT *: 这是查询语句的一部分,用于指定你要选择的列。星号 * 表示选择所有列。

FROM Books: 这指定了你要从哪个表格中查询数据,即 "Books" 表格。

WHERE author_id = 1: 这是查询的条件子句,限制了返回的数据。这里表示只选择满足条件的行,即 author_id 列的值等于 1。

借阅图书(INSERT INTO):

-- 借阅图书
INSERT INTO Borrowing_Records (record_id, user_id, book_id, borrowing_date, return_date)
VALUES (1, 1, 1, '2023-08-01', NULL);

归还图书(UPDATE):

-- 归还图书
UPDATE Borrowing_Records
SET return_date = '2023-08-15'
WHERE record_id = 1;

这段代码将更新名为 "Borrowing_Records" 的表格中的数据。它会将特定的借阅记录的 return_date 列更新为指定的日期,条件是 record_id 列的值等于 1。

小结:

这个例子展示了如何使用 SQL 来创建图书管理系统的数据库,插入初始数据,查询图书和借阅记录,以及进行借阅和归还操作。请注意,这只是一个简单的示例,实际应用中还可能需要更多的数据字段和复杂的查询操作。

总结:

RDBMS是基于关系模型的数据管理系统,通过表格存储和管理结构化数据,支持SQL查询,确保数据完整性、事务管理,为各种应用提供高效、一致的数据存储和检索。现在在日常工作中,这是最主要的数据库管理模式。