赞
踩
1.6.1 定义
数据模型是对现实世界数据特征的抽象,也就是说数据模型是用来描述数据、组织数据和对数据进行操作的。数据模型是数据库系统的核心和基础。
数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成。
1.6.2数据模型的三个要求和两大类
三个要求:
两大类
关系模型
关系模型中的一些术语
关系模式
关系术语 | 一般表格的术语 |
---|---|
关系名 | 表名 |
关系模式 | 表头(表格的描述) |
关系 | (一张)二维表 |
元组 | 记录或行 |
属性 | 列 |
属性名 | 列名 |
属性值 | 列值 |
分量 | 一条记录中的一个列值 or 元组中的一个属性值 |
非规范关系 | 表中有表(大表中有小表) |
关系模式的优点
外模式/模式映像:模式描述的是数据的全局逻辑结构,外模式描述的是局部的逻辑结构。当模式改变时(例如增加了新的关系新的属性等)有数据库管理员对各个外模式/模式的映像做相应改变,使外模式保持不变。应用程序是根据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构改变时,有数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。
1.关系的定义
域
笛卡尔积
关系
D1 × D2 × … × Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为:R(D1,D2,…,Dn)
R:关系名
n:关系的目或度(Degree)。
关系是笛卡尔积的有限子集,笛卡尔积不满足交换律,关系满足交换律(关系的每个列附加一个属性名以取消关系元组的有序性)。
单元关系与二元关系:
– 当n=1时,称该关系为单元关系(Unary relation)。
– 当n=2时,称该关系为二元关系(Binary relation)。
属性(Attribute):
关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。n目关系必有n个属性。
码(Key): 候选码(Candidate key):若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码(如学号,身份证号)。
在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码(All-key)。
若一个关系有多个候选码,则选定其中一个为主码(Primary key)。
候选码的诸属性称为主属性(Prime attribute)。不包含在任何侯选码中的属性称为非码属性或非主属性(Non-key attribute)。
三类关系:
基本关系的性质:
2. 关系数据库的基本概念
关系模式
关系数据库
3. 关系操作
常用的关系操作
关系操作的特点
关系数据语言的种类
关系数据语言的特点
4. 关系的完整性
关系的完整性: 保证行不重复(唯一)
实体完整性约束
主键约束(primary key):非空且唯一
唯一键约束(unique):唯一
参照完整性约束:
存在两个关系(表)R和S,F是一个属性或者属性集合;F属于R但不是R的主键,同时F属于S并且F是S的主键,则称F是基本关系R的外码,R为外键表,S为主键表
外键约束(foreign key):表与表之间建立联系
域完整性约束: 用户定义的完整性规则
由用户根据实际情况对数据库中的数据内容进行规定,对列的约束
检查约束(check):添加范围
数据类型约束(int、char等)
默认约束(default)
非空约束(not null)
5. 关系代数
(1)传统的集合运算符:并、交、差、笛卡尔积
(2)专门的关系运算: 投影、选择、连接、除法
举例:将a1和a3进行投影,去掉重复的:
2.1 MySQL安装
2.2 MySQL配置
/*两种连接方式*/
mysql -uroot -ppass -- 连接本地SQL,账号为root,密码为pass
mysql -h192.168.206.100 -uroot -ppass -- 连接远程SQL,IP为192.168.206.100,账号为root,密码为pass
/*三种退出方式*/
exit;
quit;
\q;
2.4 MySQL卸载
2.5 MySQL数据类型
SELECT column_name,column_name # 特定列,*代表所有列
FROM table_name;
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
SELECT column-list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
例:ORDER BY column1 DESC,column2,column3 DESC
SELECT column1,column2....columnN
FROM table_name
WHERE [ conditions ]
GROUP BY column1, column2....columnN
ORDER BY column1, column2....columnN
3.例子
4.例子
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
3.例子
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
DELETE FROM table_name
WHERE some_column=some_value;
# 用于where子句的基本语法 SELECT column_name [, column_name ] FROM table1 [, table2 ] WHERE column_name OPERATOR (SELECT column_name [, column_name ] FROM table1 [, table2 ] [WHERE]) # 用于from子句的基本语法 SELECT column_name [, column_name ] FROM (SELECT column_name [, column_name ] FROM table1 [, table2 ] [WHERE]) AS temp_table_name # 用于 FROM 的子查询返回的结果相当于一张临时表,所以需要使用 AS 关键字为该临时表起一个名字。 WHERE condition # 单行单列:WHERE查询条件中包含比较运算符,比如 >、<、>=、<=、=、!= 等 SELECT * FROM CUSTOMERS WHERE SALARY > (SELECT SALARY FROM CUSTOMERS WHERE NAME='Komal'); # 单行单列:WHERE查询条件中包含逻辑运算符(AND、OR 等) SELECT * FROM CUSTOMERS WHERE SALARY > (SELECT SALARY FROM CUSTOMERS WHERE NAME='Komal') AND SALARY < 10000; # 单列多行数据,一般和 IN、NOT INT、ANY 关键字使用 SELECT * FROM CUSTOMERS WHERE ID IN (SELECT ID FROM CUSTOMERS WHERE SALARY > 4500) AND AGE >= 25;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。