数据模型

来源:互联网 发布:电脑安全上网软件 编辑:程序博客网 时间:2024/06/02 03:43

数据模型

1、概念模型,以客户的观点和想法为基础,对现实事物的抽象

2、逻辑数据模型,数据库中的数据模型——关系数据模型

3、物理模型

概念模型:E-R图

E:实体 R:关系

一对一的关系:一个学校就一个校长一对多的关系:一个专业有多个学生多对多的关系:课程和授课老师 (Java 张 邓 王) 张 (Java H5 Android 开车)

表示:可以用矩形表示实体,菱形表示关系,椭圆表示实体的特征(属性)

关系数据模型

通过一个二维表描述关系数据模型。用行来表示具体的数据,列表示特征(属性)

1、每个属性不能再分2、关系数据模型中的二维表,不会有重复的行

对于数据库二维表的运用,主要涉及查询、连接、交、并、插入、修改、删除等这些操作,常用的四种“增、删、查、改”

表相关的知识

主键:为了保证在一张表中,不会出现两个完全相同的数据,主键唯一并且非空

外键:用来定义表与表之间的关系的属性,如学生表有学号,课程表有课程编号,要表示学生成绩时,可以建立一个成绩表,属性有学号、课程号、分数,其中的课程号(引用自课程表)和学号(引用自学生表)属于外键

约束:保证数据的完整性,限制属性,常用的约束有:

唯一约束(unique)、主键约束(primary key)、外键约束(foering key)、检查约束(check)、非空(not null)

数据库属性(字段)类型:

字符串:varchar(30)整型:int 浮点数:float日期:date datetime二进制数据:blob

建表

create table 表名(字段1 类型1 [约束],字段2 类型2 [约束]...)    如:学生表(stuInfo): stuId 整数 主键                 stuName 字符串 非空                age 整数                 sex 字符串(2)                 birth 时间    create table stuInfo         (stuId int primary key,        stuName varchar(30) not null,        age int,        sex varchar(2),        birth datetime)    课程表(curInfo):课程编号curId,课程名称curName,课时curTime,学分credit(3-8分)    create table curInfo(        curId int primary key,        curName varchar(30) not null,        curTime int not null,        credit int,        check(credit between 3 and 8)    )    联合主键(由多个字段组成的主键),如成绩表(stu_score)    学号(stuId)、课程号(curId)、成绩(score)    create table stu_score(        stuId int,        curId int,        score int not null,        primary key(stuId,curId)    )
0 0
原创粉丝点击