数据库基础

MySQL的安装和配置

  • 尽量不要下载最新版,安装时可能没有开发者版本
    官方安装链接
  • 安装后配置MySQL的root用户密码,我的密码是123456
    若安装时忘记root密码,可在安装程序中删除注册表,再重新安装配置
  • 添加环境变量,要写成Mysql\bin\的形式
    若不知道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®={t|t∈R∩F(t)=‘true’}
    其中,f为选择条件,R为目标表
    如σSage<20(Student)查询学生表(Student)中年龄(Sage)小于20的学生的所有信息(元组)
  • 投影:从关系R中选出若干属性列组成新关系选出列
    πA®={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日
许可协议