数据库复习期中

数据库复习期中

  • 期中复习
    • 数据库系统的目标
    • 三种完整性约束
    • 数据抽象
    • 几个关系
    • 数据模型
    • 关系数据库的结构
    • SQL语言的部分
    • 一些建表语句

期中复习

因为期中考试需要,这边知识点有些忘记了,罗列一下顺便当成自己的复习一样吧。

数据库系统的目标

相比起数据库系统,我们经历了几种数据存储方式:
1:Manual Work 人工记录
2:File system 文件系统
3:Database system 数据库系统

而为什么我们选择数据库系统而不是使用文件系统呢?
首先这里文件存储系统有几个弊端:

1.数据冗余和不一致
2.数据访问困难
3.并发访问异常
4.完整性问题
5.原子性问题
6.安全性问题
7.数据孤立
使用数据库系统可以减少相应的问题出现,并不能 避免

三种完整性约束

• 实体完整性:关系主码不为空。即主键不能为空,不能重复。
• 参照完整性:外码要么为空,要么等于被参照的主码。外键必须根据相应的数据表的主键来进行一些操作
• 用户定义完整性:用户定义的数据要求。例如定义ssex这一列的时候,性别一般都为“男”、“女”,我们可以定义插入的时候检查该字段是否为“男”、“女”,否则就会报错。

数据抽象

物理层:
逻辑层:
视图层:

几个关系

数据模型

关系模型:关系模型用表的集合来表示数据和数据间的联系。每个表有多个列,每列有唯一的列名。关系模型是基于记录的模型的一种。每个记录类型定义了固定数目的字段。

关系数据库的结构

关系数据库是由表的集合构成,每个表由唯一的名字。

SQL语言的部分

数据定义语言(DDL):提供定义关系模型、删除关系以及修改关系模型的命令。
数据操纵语言(DML):从数据库中查询信息,以及在数据库中插入元组、删除元组、修改元组的能力。
完整性(integrity):DDL包括定义完整性约束的命令,保证在数据库中的数据必须满足所定义的完整性约束。破坏该约束的更新是不允许的。
视图定义:DDL包括定义视图的命令。
事务控制:SQL包括定义事务的开始和结束的命令
嵌入式SQL和动态SQL:如何嵌入C,C++,Java等编程语言。
授权:DDL中包括了定义对关系和视图的访问权限的命令。

一些建表语句

create table student(
sno varchar(10),
sname varchar(16),
ssex varchar(4),
sage tinyint,
major varchar(20),
primary key(sno)
);

这里可以换这个

create table student(
sno varchar(10) primary key,
sname varchar(16),
ssex varchar(4),
sage tinyint,
major varchar(20),
);
create table course(
cno varchar(4),
cname varchar(20),
ccredit tinyint,
primary key(cno)
);
create table sc(
sno varchar(10),
cno varchar(4),
grade smallint,
primary key(sno, cno),
foreign key(sno) references student,
)

外键的使用constraint FK_name foreign key (sno) references student(sno)

你可能感兴趣的:(数据库)