整个数据库系统包括数据,数据库,数据库管理系统。数据库管理系统是位于操作系统和应用程序开发工具之间的的一层,可以由数据库管理员来对数据库管理系统和数据库进行操作。数据库具有以下特点: 1.数据结构化; 2 .数据的共享性高,冗余度第且易于扩充; 3.数据独立性高; 值得注意的是,数据库并不能对现实世界存在的东西进行存储,所以需要对现实世界的事物进行抽象处理。将数据模型分为两种:一是概念模型(便于人类理解),二是逻辑模型/物理模型(数据库可以识别)。 概念模型中包括实体,属性,实体集,实体型,关系等。 逻辑模型(也称数据模型)通常由数据结构,数据操作,数据的完整性约束条件三部分组成。
具体到关系模型来讲,从用户的角度来看,关系模型就是一组关系组成,每个关系是一张规范的二维表。 关系模型的数据结构包括一些基本概念:关系,属性,元组,码,分量,域。 其中域是指:具有相同数据类型的值的集合。 分量是指:元组中的一个属性值。
整个数据库系统由三个模式组成,三集结构分别指内模式,模式外模式,其中对应有两种映射关系:模式/外模式映像,模式/内模式映像。在一个数据库系统中,只能由一个模式,和一个内模式。 数据库有一个很重要的优点,它能保证数据的物理独立性和逻辑独立性。 其中逻辑独立性能够保持的原因就是数据库系统具有两层映像的原因。
1.实体约束性条件 当某个属性为关系的主属性时,它不能为非空值 2.参照性约束条件 外码要么为空,要么与被参照关系中的主码具有相同的值。 以sqlserver为例,创建一个学生选课系统,一共有三个关系: 1.Student(学号,姓名,年龄) 2.Course(课程号,课程名,先修课) 3.CS(课程号,学号 ,成绩) 其中画横线的表示主码
以上述三个表来分析: 满足实体约束完整性,那么对student每个记录的学号不能为空,对course,课程号不能为空;对cs,课程号和学号都不能为空。
满足参照完整性约束,那么对先修课的话,他可以为空,那么表示没有先修课,如果它不为空,那么必须是已有的课程号中的一个。(也就是说,外码不一定是参照另一个表,它可以是自己。外码一定不是本关系的码。)
SQL server建表为:
全文结束,欢迎在评论区讨论~