【数据库】为了考试+做项目版


第一章 绪论

记录一些概念性东西应付期末考试

  • 数据 data

    描述事物的符号记录称为数据

  • 数据库 DataBase

    数据库是长期存储在计算机内、有组织的、可共享大量数据的集合

    • 数据库的基本特征

      数据库中的数据按一定的数据模型组织、描述和储存

      具有较小的冗余度

      较高的数据独立性

      易扩展性

  • 数据库管理系统

    数据库管理系统是位于用户与操作系统之间的一层数据管理软件,和操作系统一样是计算机的基础软件

    数据库管理系统的主要功能:

    (1)数据定义功能

    提供数据定义语言(Data Definition Language,DDL)

    (2)数据组织、存储和管理

    实现数据之间的联系

    (3)数据操纵方法

    数据操纵语言(Data Manipulation Language,DML)

    (4)数据库的事务管理和运行管理

    (5)数据库的建立和维护功能

    (6)其他功能

  • 数据库系统

    数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DataBase Administrator,DBA)组成的存储、管理、处理和维护数据的系统

  • 此处缺图:电子书P18

  • 两类数据模型

    概念模型

    逻辑模型和物理模型

  • 概念模型

    • 实体

      客观存在并可相互区别的事物称为实体

    • 属性

      实体所具有的某一特性称为属性

    • 唯一标识实体的属性集称为码

    • 实体型

      用实体名及其属性名集合来抽象和刻画同类实体,称为实体型

    • 实体集

      同一类型实体的集合

    • 联系

      实体之间的联系通常是指不同实体集之间的联系

      实体之间的联系有一对一、一对多和多对多等多种类型

    • 实体-联系方法

      概念模型的一种表示方法

    • 数据模型的组成要素

      数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成

    • 常用的数据模型

      层次结构

      网状结构

      关系模型

      面向对象数据模型

      对象关系数据模型

      半结构化数据模型

  • 第一章习题:

    电子书P45 原书P33


第二章 关系数据库

  • 域是一组具有相同数据类型的值的集合

  • 笛卡尔积

    此处缺图,懒得记

  • 关系

    此处缺图,懒得记

  • 关系操作

    查询、插入、删除、修改

    • 查询操作

      选择select

      投影project

      连接join

      除divide

      并union

      差except

      交intersection

    • 结构化查询语言SQL(Structured Query Language)

  • 实体完整性规则

    若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值(null value)

  • 关系代数的运算

    传统的集合运算

    专门的关系运算

    • 传统的集合运算

      并union

      差except

      交intersection

      笛卡尔积cartesian product

    • 专门的关系运算

      选择

      投影

      连接

      除运算

      • 关系运算有很多数学符号和公式。。。。线下用纸笔记录吧。。。

        原书49起 电子书61页起

  • 第二章习题

    电子书81页起 原书69页起


第三章 关系数据库标准语言SQL

  • SQL的数据定义语句
操作对象操作方式
创建删除修改
模式CREATE SCHEMADROP SCHEMA
CREATE TABLEDROP TABLEALTER TABLE
视图CREATE VIEWDROP VIEW
索引CREATE INDEXDROP INDEXALTER INDEX
  • 一个关系数据库管理系统的实例(instance)中可以建立多个数据库,一个数据库中可以建立多个模式,一个模式下通常包括多个表、视图和索引等数据库对象

模式的定义与删除

模式是什么来自(回答来自:ChatGPT)

  • 数据库的模式(Schema)是数据库中的一个结构,用于组织和管理数据库对象,如表、视图、索引、存储过程等。
  • 它相当于一个容器,可以帮助用户将相关的数据库对象分组,从而实现逻辑上的隔离和管理。模式可以用于不同用户或应用程序之间的权限管理,使得不同的用户可以在同一个数据库中拥有独立的工作空间。
模式的主要特点:
  1. 命名空间:每个模式都有一个独特的名称,可以帮助避免命名冲突。
  2. 权限控制:可以为不同的用户或角色分配不同的权限,以控制对模式内对象的访问。
  3. 组织结构:通过模式,可以将不同的数据库对象按照业务功能或应用划分,从而提高管理效率。

删除模式

要删除模式,可以使用以下语句:

1
DROP SCHEMA <模式名> <CASCADE | RESTRICT>;
  • CASCADE:删除模式及其包含的所有对象。
  • RESTRICT:如果模式中有对象存在,拒绝删除操作。

在删除模式时,确保考虑到模式内的所有对象及其依赖关系,以免造成数据丢失或引用错误。

定义模式
  • 模式定义语句:CREATE SCHEMA <模式名> AUTHORIZATION <用户名>;

    没有指定<模式名>,则<模式名>隐含为<用户名>

    要创建模式,调用该命令的用户必须拥有数据库管理员权限,或获得了数据库管理员授予的CREATE SCHEMA的权限

基本表的定义、删除与修改

定义基本表

1
2
3
4
CREATE TABLE <表名> (<列名><数据类型> [列级完整性约束]
[,<列名><数据类型> [列级完整性约束]]
...
[,<表级完整性约束条件>]);

模式与表(没看懂)

修改基本表

1
2
3
4
5
6
7
8
ALTER TABLE <表名>
[ADD [COLUMN] <新列名><数据类型> [完整性约束]] -- 增加新列
[ADD <表级完整性约束>]
[DROP [COLUMN] <列名> [CASCADE|RESTRICT]] -- 删除列
-- 指定CASCADE → 自动删除引用了该列的其他对象,如视图
-- 指定RESTRICT → 如果该列被其他对象引用,RDBMS将拒绝删除该列
[DROP CONSTRAIN <完整性约束名> [RESTRICT|CASCADE]]
[ALTER COLUMN <列名><数据类型>]; -- 修改原有的列定义

删除基本表

1
DROP TABLE <表名> [RESTRICT|CASCADE];
  • 选择RESTRICT:表的删除有限制条件

    要删除的表不能被其它表的约束所引用(如CHECK, FOREIGN KEY等约束),不能有视图,不能有触发器,不能有存储过程或函数等

  • 选择CASCADE:该表的删除没有限制条件

    在删除基本表的同时,相关的依赖对象,如视图等都将被一起删除

  • 默认情况是RESTRICT

索引的建立与删除

  • 建立索引可以加快查询速度

  • 常见的数据库索引

    顺序文件上的索引

    B+树索引

    散列(hash)索引

    位图索引

  • 顺序文件上的索引

    针对按指定属性值升序或降序存储的关系

    在该属性上建立一个顺序索引文件,索引文件由属性值和相应的元组指针组成

  • B+树索引

    将索引属性组织成B+树形式

    B+树的叶结点为属性值和相应的元组指针

    B+树具有动态平衡的优点

  • 散列索引

    建立若干个桶,将索引属性按照其散列函数值映射到相应桶中

    桶中存放索引属性值和相应的元组指针

    具有查找速度快的特点

  • 位图索引

    用位向量记录索引属性中可能出现的值,每个位向量对应一个可能值

  • 一般:建立与删除索引由数据库管理员或表的属主(owner),即建立表的人,负责完成

建立索引

1
2
CREATE [UNIQUE][CLUSTER] INDEX <索引名>
ON <表名>(<列名> [<次序>][, <列名>[<次序>]]...);

修改索引

1
ALTER INDEX <旧索引名> RENAME TO <新索引名>;

删除索引

1
DROP INDEX <索引名>;

数据查询

  • 查询语句的一般格式
1
2
3
4
5
SELECT [ALL|DISTINCT] <目标列表达式>[,<目标列表达式>]...
FROM <表名或视图名>[,<表名或视图名>]|(<SELECT 语句>)[AS]<别名>
[WHERE <条件表达式>]
[GROUP BY <列名1> [HAVING <条件表达式>]]
[GROUP BY <列名2> [ASC|DESC]];
  • 字符匹配
1
[NOT] LIKE '<匹配串>' [ESCAPE '<换码字符>']

含义是查找指定的属性列值与<匹配串>相匹配的元组

<匹配串>可以是一个完整的字符串,也可以含有通配符%和_

%代表任意长度(可以为0)的字符串

​ 例如a%b表示以a开头,以b结尾的任意长度的字符串

_代表任意单个字符

​ 例如a_b代表以a开头,以b结尾的长度为3的任意字符串


项目-设计数据库部分需要注意的

  • 数据库系统

数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(Database Administrator,DBA)组成的存储、管理、处理和维护数据的系统

  • Copyrights © 2024-2025 brocademaple
  • 访问人数: | 浏览次数:

      请我喝杯咖啡吧~

      支付宝
      微信