数据库系统原理与实践 笔记 #6

这篇具有很好参考价值的文章主要介绍了数据库系统原理与实践 笔记 #6。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据库系统原理与实践 笔记 #6

数据库设计和E-R模型

设计过程

  • 设计数据库模式、设计访问更新数据库的程序、以及设计控制数据访问的安全模式
  • 设计阶段:
    • 概念设计阶段:构建实体-联系图
    • 逻辑设计阶段:将实体-联系图映射到关系模式
    • 物理设计模式:指明数据库文件组织格式和索引结构
  • 设计问题:冗余、不完整

实体-联系模型

  • 实体-联系(Entity-Relationship)模型:E-R模型是一种语义模型,在将现实世界事物的含义和相互关联映射到概念模式方面非常有用
  • 采用三个基础概念:实体集联系集属性
  • 一个数据库可以被建模为:实体的集合、实体间的联系

实体集

  • 实体是现实世界可区别于所有其他对象的一个“事物”或“对象”
  • 实体集是想同类型即具有相同性质(或属性)的一个实体集合
  • 实体集的外延是指属于实体集的实体的实际集合
  • 实体有属性,它是实体集中每个成员所拥有的描述性性质
  • 每个实体的每个属性都有一个

联系集

  • 联系是指多个实体间的相互关联
  • 联系集是相同类型联系的集合
  • 联系集也可以有属性

联系集中实体的角色

  • 实体在联系中扮演的功能称为实体的角色
  • 角色是隐含的,通常不指定
  • 当同样的实体集参与一个联系集多于一次,这类联系集称作是递归联系集

联系集的度

  • 参与联系集的实体集的数目称为联系集的
  • 二元联系集:涉及两个实体集(度为2)、数据库系统中大多数联系集都是二元

属性

  • 实体通过一组属性来表示,属性是实体集中每个成员所拥有的描述性性质
  • —每个属性可取值的集合,也称值域
  • 属性类型:
    • 简单复合属性
    • 单值多值属性
    • 派生属性和属性:派生属性可以从别的属性派生出来、派生属性值不存储,而是在需要时计算出来

复合属性

  • 复合属性可以是有层次
    数据库系统原理与实践 笔记 #6,数据库系统原理与实践,数据库,笔记,sql

约束

映射基数约束

  • 映射基数,或基数比率,表示一个实体通过一个联系集能关联的实体的个数
  • 对二元联系集来说,映射基数必然是以下情况之一:一对一、一对多、多对一、多对多
  • 二元联系集中的一个集合的某个元素可能并不映射到另一集合的任一元素

参与约束

  • 如果实体集E中的每个实体都参与到联系集R的至少一个联系中,实体集E在联系集R中的参与称为全部
  • 如果实体集E中只有部分实体参与到R的联系中,实体集E在联系集R中的参与称为部分

实体集的码

  • 一个实体集的超码是一个或多个可以用来唯一标识实体的属性(集)
  • 一个实体集的候选码是最小的超码
  • 主码是被选择用来区分实体的候选码,主码只有一个,但候选码可以有多个

联系集的码

  • 如果联系集R没有属性,那么属性集合 p r i m a r y − k e y ( E 1 ) ∪ p r i m a r y − k e y ( E 2 ) ∪ . . . ∪ p r i m a r y − k e y ( E n ) primary-key(E_1)\cup primary-key(E_2)\cup ... \cup primary-key(E_n) primarykey(E1)primarykey(E2)...primarykey(En)描述了集合R中的一个联系

  • 如果联系集R属性 a 1 , a 2 , . . . , a m a_1,a_2,...,a_m a1,a2,...,am,那么属性集合 p r i m a r y − k e y ( E 1 ) ∪ p r i m a r y − k e y ( E 2 ) ∪ . . . ∪ p r i m a r y − k e y ( E n ) ∪ { a 1 , a 2 , . . . , a m } primary-key(E_1)\cup primary-key(E_2)\cup ... \cup primary-key(E_n)\cup \{a_1,a_2,...,a_m\} primarykey(E1)primarykey(E2)...primarykey(En){a1,a2,...,am}描述了集合R中的一个联系

  • 相关的实体集的主码的集合形成了联系集的超码,在以上的两种情况下,属性集合 p r i m a r y − k e y ( E 1 ) ∪ p r i m a r y − k e y ( E 2 ) ∪ . . . ∪ p r i m a r y − k e y ( E n ) primary-key(E_1)\cup primary-key(E_2)\cup ... \cup primary-key(E_n) primarykey(E1)primarykey(E2)...primarykey(En)总是构成联系集的一个超码

冗余属性

  • 假设有实体集:
    • instructor实体集有dept_name属性
    • department实体集
  • 以及联系集:
    • inst_dept,联系instructor和department
  • instructor中的dept_name属性是冗余的,因为有一个明确的关系inst_dept来联系instructor和department:
    • dept_name属性重复了inst_dept联系中的信息,应该从instructor中除去

实体-联系图

E-R图

数据库系统原理与实践 笔记 #6,数据库系统原理与实践,数据库,笔记,sql

  • 矩形代表实体集
  • 属性在实体矩阵中列出
  • 构成主码的属性以下划线标明
  • 菱形代表联系集

参与联系集中的实体集

  • 全部参与(用两条线标识):实体集中的每个实体都参与到联系集的至少一个联系中
  • 部分参与:某些实体不参与到联系集中的任何一个联系

基数约束

  • 我们在联系集和实体集之间画一个箭头( → \rightarrow ) 代表“一”,或者一条线段(—) 代表“多”来表示基数约束
    数据库系统原理与实践 笔记 #6,数据库系统原理与实践,数据库,笔记,sql

角色

  • 一个联系的实体集不需要唯一:一个实体集总的元素每次读出现在关系中代表一个“角色”
  • course_id和prereq_id被称为角色
    数据库系统原理与实践 笔记 #6,数据库系统原理与实践,数据库,笔记,sql

三元关系上的基数约束

  • 我们只允许在一个三元(或三元以上)联系集外有一个箭头来表示基数约束
  • 如果有多余一个的箭头,那就会有两种解释:
    • 例如,R是A,B和C之间的三元联系集,并且有两个箭头指向B和C,这可以表示为:
      • 每个在A中的实体都与来自B和C的至多一个实体相关联
      • 每个来自(A,B)的实体对都与来自C的至多一个实体相关联,而每个来自(A,C)的实体对都与来自B的至多一个实体相关联
    • 为了避免混淆,在联系集这外我们只允许有一个箭头

弱实体集

  • 一个没有足够的属性形成主码的实体集叫做弱实体集

  • 弱实体集必须与标识属主实体集(Owner Entity Set) 关联才有意义

  • 将弱实体集与其表示实体集相连的联系称为标识性联系:标识联系集以双边框的菱形表示

  • 弱实体集通过一个全部参与的、(多对一或一对一)的联系集与标识实体集联系

  • 弱实体集的分辨符是使得我们区分弱实体集中实体的属性集合,也称为该弱实体集的部分码

  • 弱实体集的主码标识实体集的主码和该弱实体集的分辨符共同组成

  • 弱实体集的分辨符用虚下划线表示

  • 标识联系集以双边框的菱形表示

  • 强实体集的主码并不存储于弱实体集

  • 弱实体集可以参与标识性联系以外的任何联系,也可能与不止一个标识实体集关联

  • 在某些情况下,数据库设计者会选择讲一个弱实体集表示为属主实体集的一个 (多值)符合属性文章来源地址https://www.toymoban.com/news/detail-724988.html

    • 如果弱实体集只参与标识性联系,而且其属性不多,建模时更适合将其作为属性
    • 反之,更适合将其表示为弱实体集

转换为关系模式

  • 一个符合E-R模式的数据库可以表示为一些关系模式的集合
    • 实体集联系集都可以用表示数据库内容的统一的关系模式来表示
    • 每个实体集合联系集独有一个特有的关系模式与其对应,并分配相应的名字
    • 每个关系模式都有一些列,每个列多有唯一的名字

具有简单属性的实体集的表示

  • 从强实体集转换而来的模式与强实体集具有相同属性、主码
  • 从弱实体集转换的模式包含弱实体集的属性表示强实体集的主码
  • 该模式的主码由强实体集的主码与弱实体集的分辨符组合而成

复合属性

  • 复合属性通过为每个子属性创建单独的属性
    • 实体集instructor有复合属性name:由first_name, middle_name和last_name构成
    • 转化成关系模式后,该实体集具有name_first_name,name_middle_name和name_last_name

多值属性

  • 实体集E的多值属性M用一个独立的模式EM表示
  • 模式EM包含对应于的E主码及多值属性M的属性
  • 多值属性的每个值映射到关系模式EM的每一个独立元组
  • 不需要建立一个对应于实体集的模式,只需创建一个对应于多值属性的关系即可

联系集的表示

  • 联系集关系模式属性的选择
  • 联系集主码选择:二元联系集主码选择、多元联系集主码选择
  • 注意:需要为联系集的属性建立外码约束

模式的冗余—合并

  • 多对一和一对多的联系集的模式,如果“多”方参与是全部的,那么可以将 “多”方实体集和联系集的模式合并成单个包含两个模式所有属性并集的关系模式
  • 合并后模式加入原联系集的外码约束
  • 如果“多”方参与是部分的,也可以通过使用空值来进行模式合并。转换为关系模式时,联系集中 “一”方的相关属性应注意不能设置为not null
  • 在一对一联系的情况下,联系集的关系模式可以跟参与联系的任何一个实体集的模式进行合并
  • 一般而言,连接弱实体集与其标识强实体集之间的标识性联系集转换出的模式是冗余

到了这里,关于数据库系统原理与实践 笔记 #6的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《数据库原理》实验六 SQL数据查询实验

    本系列传送门: 实验二 SQL Server SSMS工具创建和管理数据库及数据表 实验三 SQL Server SSMS工具添加数据 实验四 SQL的数据定义语句 实验五 数据库完整性约束的实现与验证 实验六 SQL数据查询实验 实验六(2) SQL数据查询—连接查询 实验七 SQL的数据更新和视图 实验八 T_SQL编程

    2024年02月03日
    浏览(101)
  • 分布式数据库事务故障恢复的原理与实践

    关系数据库中的事务故障恢复并不是一个新问题,自70年代关系数据库诞生之后就一直伴随着数据库技术的发展,并且在分布式数据库的场景下又遇到了一些新的问题。本文将会就事务故障恢复这个问题,分别讲述单机数据库、分布式数据库中遇到的问题和几种典型的解决方

    2024年02月03日
    浏览(41)
  • 【数据库·关系数据库标准语言SQL·学习笔记】Microsoft SQL Server数据库的建立和删除

    开发环境:SQL Server Management Studio(SSMS) 利用数据库对象资源管理器创建数据库 (1)右击对象资源管理器中的数据库,选择新建数据库 (2)在新建数据库界面输入数据库名称 ,并选择确定 利用CREAT DATABASE命令在SSM工具的新建查询中创建数据库 1.语法格式 CREATE DATABASE dat

    2024年02月08日
    浏览(60)
  • ​数据库原理及应用上机(实验二 SQL数据定义功能实验)

    ✨ 作者:命运之光  ✨ 专栏:数据库原理及应用上机实验   目录 ✨一、实验目的和要求 ✨二、实验内容与步骤 ✨三、附加练习 ✨四、实验总结 🍓🍓 前言:   数据库原理及应用上机实验报告的一个简单整理后期还会不断完善 🍓🍓 1.掌握利用SQL查询分析器和企业管理

    2024年02月05日
    浏览(47)
  • 【SQL Server】数据库开发指南(三)面向数据分析的 T-SQL 编程技巧与实践

    本系列博文还在更新中,收录在专栏:#MS-SQL Server 专栏中。 本系列文章列表如下: 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南(一)数据库设计的核心概念和基本步骤 【SQL Server】数据库开发指南(二)MSSQL数据库开发对

    2023年04月12日
    浏览(109)
  • SQL笔记 -- 数据库结构优化

    不常用的数据为冷数据,反之则为热数据。如果一个表中的数据存在明显的使用频率差异,那么可以将冷热数据分离。通过这种分解可以提高表的查询效率。对于字段很多且有些字段使用不频繁的表,可以通过这种分解的方式来优化数据库的性能。 例如: 会员members表存储会

    2024年01月22日
    浏览(59)
  • 头歌实践教学平台数据库原理与应用实训答案

    目录 实训一:数据定义和操纵(4课时) 初识MySQL数据库 第1关:创建数据库  第2关:创建表  第3关:使用主键约束 第4关:外键约束 第5关:添加常用约束 DDL语言的使用 第1关:创建数据库  第2关: 创建表  第3关:添加字段  第4关:删除字段  第5关:修改字段  第6关:添加

    2024年02月08日
    浏览(48)
  • 数据库原理及应用实验报告-实验4-SQL的视图

    实验目的 熟悉SQL支持的有关视图的操作,能够熟练使用SQL语句来创建需要的视图,对视图进行查询和删除视图。 实验内容 定义常见的视图形式,包括: 行列子集视图 WITH CHECK OPTION的视图 基于多个基表的视图 基于视图的视图 带表达式的视图 分组视图 通过实验考察WITH CHEC

    2023年04月26日
    浏览(59)
  • 数据库原理与应用(SQL)——2、关系数据库(E-R图、关系模式、关系运算、关系代数)

      目录 关系  关系运算   元组、域关系演算表达式  题目  关系代数表达式——例 元组演算表达式——例  域演算表达式——例         关系数据库是以 二维表 形式组织数据,应用数学方法处理数据库组织的方法。目前关系数据库系统在数据管理中已占据了主导地位

    2023年04月08日
    浏览(46)
  • SQL学习笔记——创建数据库和表

    一、创建数据库和表 1、创建数据库 打开 SSMS(Microsoft SQL Server Management Studio)→新建查询→输入如下图的sql语句→点击执行 成功后可以看到左侧数据库中成功创建了“CPXS”产品销售数据库。对应路径下新增数据库文件。 说明: 主数据库文件扩展名为.mdf,表示Main Data File;

    2024年02月01日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包