数据库系统概论(二)
数据库系统的特点:
1.数据结构化
数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别:数据内部是结构化的,整体也是结构化的,数据之间是具有联系的。
2.数据的共享性高、冗余度低且易扩充
数据共享可以大大减少数据冗余,节约存储空间,还能够避免数据之间的不相容性与不一致性,且可以被多个应用共享使用,弹性大,易于扩充。
3.数据独立性高
物理独立性:用户的应用程序与数据库中数据的物理存储是相互独立的。
逻辑独立性:用户的应用程序与数据库的逻辑结构是相互独立的。
4.数据由数据库管理系统统一管理和控制
(1)数据的安全性保护:保护数据以防不合法使用造成的数据泄密和破坏。
(2)数据的完整性检查:数据的正确性、有效性和相容性。
(3)并发控制:当多个用户的并发进程同时存取、修改数据库时,可能会发生互相干扰而得到错误的结果或使得数据库的完整性遭到破坏,故必须对多用户的并发操作加以控制和协调。
(4)数据库恢复
【例】一个学生的信息包括学号、姓名、性别、年龄、专业和奖励,采用数据库系统实现学籍管理。
建立两张表:STUDENT存放学生的基本信息,AWARD存放学生的奖励情况,用CREATE语句来实现。
CREATE TABLE STUDENT(
Sno CHAR(8),
Sname CHAR(10),
Ssex CHAR(2)
Sage SMALLINT,
Major CHAR(20));
CREATE TABLE AWARD(
Sno CHAR(8),
Details VARCHAR(2000));
ps:其中CHAR和VARCHAR的区别有以下几点:
(1)CHAR为定长,而VARCHAR的长度初始值为定义长度,而将数据赋值给VARCHAR后,其长度会随之改变为赋值长度。
(2)CHAR的存取速度优于VARCHAR,其原因主要在于存储模式,CHAR为简单顺序存储,VARCHAR为链式存储。
(3)CHAR中存储英文为ASCII码中值,占1字符,中文占2字符;VARCHAR存储英文为2字符,中文也为2字符。
插入学生基本信息和奖励情况到两个表中,用INSERT语句实现。
INSERT INTO STUDENT(Sno,Sname,Ssex,Sage,Marjor)
VALUES('20100001','史玉明','女',20,'计算机')//插入学生的基本信息
INSERT INTO AWARD(Sno,Details)
VALUES('20100001','2011校奖学金,2012国家奖学金')//插入学生获得的奖励
查询功能:
SELECT A.Sno,Sname,Ssex,Sage,Major,Details
//查询学号为20100001学生的信息
FROM STUDENT A LEFT JOIN AWARD B ON A.Sno=B.Sno
WHERE A.Sno='20100001'
————————————————————————————————————————————————————
以上内容整理自《数据库系统概论》(第五版)