数据库基础
MySQL的安装和配置
尽量不要下载最新版,安装时可能没有开发者版本 官方安装链接
安装后配置MySQL的root用户密码,我的密码是123456 若安装时忘记root密码,可在安装程序中删除注册表,再重新安装配置
添加环境变量,要写成Mysql 若不知道MySQl装在哪里,可以Win+R输入services.msc,在服务中找到MySQL,右键找到根目录
启动MySQL 一般开机自启,也可以在cmd输入net start/stop mysql80 使用管理员模式启动cmd
连接数据库 mysql -u root -p # 关系数据库基础 ## 基本定义
域:一组具有相同数据类型的值的集合,如整数,实数,性别
笛卡儿积:所有域的所有取值的组合 D1{a,b} D2{c,d} D1*D2={(a,c),(a,d),(b,c),(b,d)}
元组:笛卡儿积中每一个元素称作一个元组(Tuple),如(a,c)
分量:元组中每一个值称作一个分量
基数:笛卡尔积中的元素数量,如例中基数为2*2=4 ### 关系
关系的表示
属性1 | 属性2 | 属性3 |
---|---|---|
1 | a | b |
2 | c | d |
3 | e | f |
- 表的每行对应一个元组,表的每列对应一个属性属性的取值范围叫做域
- n目/度关系必须有n个属性 ### 码
- 候选码:关系中某一属性的值能唯一地标识一个元组,称为候选码,可以有一个或多个
- 全码:极端情况下,关系中所有属性都为这个关系的候选码,称为全码
- 主码:若一个关系有多个候选码,则选定其中一个为主码,主码只有一个!
- 主属性:候选码的诸属性
- 非主属性 ### 三类关系
- 基本关系(基本表) 实际存在的表
- 查询表 查询结果的表
- 视图表 导出的表,是虚表 ## 关系模式 是对关系的描述 ### 定义关系模式 形式:R(U,D,DOM,F) R:关系名 U:组成关系的属性名的集合 D:属性U中属性来自的域 DOM:属性向域的映像集合 F:属性间数据依赖关系
- 关系模式和关系:关系模式是静态的,稳定的 ,关系是动态的,随时间不断变化的
- 关系可以看作关系模式在某一时刻的状态或内容
基本关系操作
*
注意,基本关系运算只有五种:并(U)、差、(—)笛卡尔积(X)、投影、选择
* 其它运算即交、连接和除,均可通过5种基本的运算来表达 ## 关系完整性 *
实体完整性:若属性A是基本关系R的主属性,则属性A不能取空值
教材上没有补充:不能取空,也不能相同,也不能随意更改
*
参照完整性:若属性或属性组F是基本关系R的外码它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须为空值(F的每个属性值均为空值)或等于S中某个元组的主码值
* 用户自定义完整性 *
外码:外码:设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码
基本关系R称为参照关系
基本关系S称为被参照关系 * 关系R和S不一定是不同关系 *
S和K必须定义在同一个域上 * 外码不一定要与对应主码同名
## 专门的关系运算 /p10 *
选择:在关系R中选择满足条件的诸元组选出行
σf(r)={t|t∈R∩F(t)='true'} 其中,f为选择条件,R为目标表
如σSage<20(Student)查询学生表(Student)中年龄(Sage)小于20的学生的所有信息(元组)
*
投影:从关系R中选出若干属性列组成新关系选出列
πA(R)={T[A]|t∈R} 其中,A为R的属性列,R为目标表
如πSnane,Sdepet(Student)查询学生的姓名和所在系
可以去重,显示不重复的分量 *
连接:从两个关系的笛卡儿积中选取属性将间满足一定关系的元组
其中A和B分别为R和S上度数相等且可比的属性组 连接的结果是满足条件的属性组
主要分为两种:
A | B | C |
---|---|---|
a1 | b1 | 5 |
a1 | b2 | 6 |
a2 | b3 | 8 |
a2 | b4 | 12 |
B | E |
---|---|
b1 | 3 |
b2 | 7 |
b3 | 10 |
b3 | 2 |
b5 | 2 |
1.等值链接R⊳⊲S A,B属性值相同 A=B | A | R.B | C | S.B | E | |----|:---:|---|-----|----| | a1 | b1 | 5 | b1 | 3 | | a1 | b2 | 6 | b2 | 7 | | a2 | b3 | 8 | b3 | 10 | | a2 | b3 | 8 | b3 | 2 |
2.自然连接R⊳⊲S 等值连接的特殊情况,A=B属性相同,很常用连接时去除重复属性
A | B | C | E |
---|---|---|---|
a1 | b1 | 5 | 3 |
a1 | b2 | 6 | 7 |
a2 | b3 | 8 | 10 |
a2 | b3 | 8 | 2 |