数据库基础

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

数据库基础
https://fireworks258.github.io/2024/05/08/数据库基础/
作者
Fireworks
发布于
2024年5月8日
许可协议