数据库基础知识点总结
一、数据库基本概念
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。它能高效地对数据进行存储、检索、更新等操作。数据模型是数据库系统的核心和基础,常见的数据模型有层次模型、网状模型和关系模型等。关系模型是目前应用最广泛的数据模型,以二维表(关系)的形式组织数据。
二、关系数据库中的术语
1.关系(Relation)
-一个关系就是一张二维表。表中的行称为元组(Tuple),代表一个实体实例;列称为属性(Attribute),代表实体的某个特征。例如,在一个学生信息表中,每一行是一个学生的信息(元组),每一列如姓名、年龄等是属性。
2.键(Key)
-主键(PrimaryKey):用于唯一标识关系中的元组。例如学生表中的学号通常可以作为主键,因为每个学生的学号是唯一的。
-外键(ForeignKey):是一个表中的某个属性,它的值与另一个表中的主键相对应,用于建立表与表之间的联系。如在选课表中,学生学号作为外键,它与学生表中的学号(主键)相关联。
三、数据库设计
1.需求分析
-这是数据库设计的第一步,需要明确用户对数据库的各种需求,包括数据的存储需求、数据处理需求、数据安全性需求等。例如,对于一个学校的教务管理系统,要了解学校有哪些部门需要使用该系统,他们需要查询、修改哪些数据等。
2.概念结构设计
-主要通过E-R(Entity-Relationship)模型来描述数据库的概念结构。E-R模型通过实体、属性和实体之间的关系来表示现实世界中的数据结构。例如,在学校管理系统中,实体有学生、教师、课程等,学生的属性有学号、姓名等,学生和课程之间存在选课关系。
3.逻辑结构设计
-将概念结构转换为关系模型。把E-R模型中的实体转换为关系表,实体的属性转换为表的列,实体之间的关系通过外键来体现。
4.物理结构设计
-确定数据库的存储结构和存取方法。例如,选择合适的文件组织形式(如堆文件、索引文件等),确定索引的建立等,以提高数据库的性能。
四、数据库操作语言
1.SQL(StructuredQueryLanguage)
-DDL(DataDefinitionLanguage):用于定义数据库的结构,如创建表(CREATETABLE)、修改表结构(ALTERTABLE)、删除表(DROPTABLE)等。例如,创建一个包含学生学号、姓名和年龄的学生表:
-`CREATETABLEstudent(
student_idINTPRIMARYKEY,
student_nameVARCHAR(50),
student_ageINT
);`
-DML(DataManipulationLanguage):用于对数据库中的数据进行操作,如插入数据(INSERT)、更新数据(UPDATE)、删除数据(DELETE)和查询数据(SELECT)。例如,向学生表中插入一条学生信息:
-`INSERTINTOstudent(student_id,student_name,student_age)VALUES(1,John,20);`
-DCL(DataControlLanguage):用于控制数据库的访问权限,如授予用户权限(GRANT)和收回用户权限(REVOKE)等。
五、数据库的完整性约束
1.实体完整性
-要求关系中的主键不能为空值(NULL)且唯一。这确保了每个元组在关系中都能被唯一标识。例如在学生表中,学号为主键,如果允许学号为空或存在重复的学号,就会导致数据的混乱。
2.参照完整性
-通过外键来实现。外键的值要么为空(在允许为空的情况下),要么必须是与之关联的主键表中的有效值。例如在选课表中,学生学号作为外键,它所引用的学生表中的学号必须是存在的。
3.用户定义完整性
-根据具体应用的需求由用户自定义的约束条件。如学生的年龄应该在一定的合理范围内,成绩应该在0-100之间等。可以通过在创建表时定义检查约束(CHECK)来实现,如:
-`CREATETABLEstudent(
student_idINTPRIMARYKEY,
student_nameVARCHAR(50),
student_ageINTCHECK(student_age=18ANDstudent_age=30)
);`
六、数据库索引
1.索引的概念
-索引是一种数据结构,它可