• 数据库系统及应用复习——第七章数据库设计


    重点:概念设计中ER模型的设计方法,逻辑设计中ER模型向关系模型的转换方法,数据库设计的阶段组成,每个阶段的主要任务。

    一、数据库设计概述

    数据库应用系统的开发也是一项软件工程,称为数据库工程,数据库应用系统也有生存期的概念,通常包括六个阶段:

    (1)需求分析阶段

       任务:

    • 做全面的详细的调查,收集支持系统总的设计目标的数据与要求
    • 确定用户需求
    • 开考虑可能变动,使之符合未来发展方向

    或者:

    • 了解系统工作概况
    • 明确用户需求
    • 确定新功能

    阶段:

    • 需求信息的收集
    • 分析整理
    • 评审

    (2)概念设计阶段:ER图与数据字典

    数据字典:是对系统中数据的详尽描述,它提供对数据库数据描述的集中管理。

    它包含以下几个部分:数据项(最小)、数据结构(大)、数据流(更大)、数据存储和加工过程(最大)。

    概念设计模型:

    任务:得到一个与DBMS无关的概念模式

    现实世界到机器世界的一个过渡的中间层次(第一次抽象)(现实事物-》(认识并抽象)信息世界的概念模型)

    (信息世界)概念模型-》(机器世界)数据模型(第二次抽象)

    设计步骤:

    • 进行数据抽象(聚集与概括),设计局部概念模式
    • 局部概念-》全局概念
    • 评审

    基本ER模型的扩展

    ER(实体联系)模型是对现实世界的一种抽象

    • 依赖联系
    • 子类

    冲突:属性冲突,命名冲突,结构冲突

    ER的分割:合并增删

    实体类型的分裂包括垂直分割(键必须在分裂后的每个实体类型中出现)、水平分割。

    联系类型合并时,所合并的联系类型必须是定义相同的实体类型中。

    采用ER方法的数据库概念设计步骤:

    • 设计局部ER模式
    • 把各局部ER模式综合成全局ER模式
    • 对全局ER模式进行优化

    (3)逻辑设计阶段

    任务:把概念设计阶段设计好的基本ER图转换为与选用的具体机器上的DBMS所支持的数据模式相符合的逻辑结构(包括数据库模式和外模式)。

    (4)物理设计阶段 :

            数据库中常用的四种文件组织方式是:顺序文件、索引文件、倒排文件、散列文件 。

            数据库的物理设计主要考虑三方面的问题:物理存储结构、分配存储空间、实现存取路径。

    (5)实现阶段

    (6)运行维护阶段

    例题(题解过程看复习笔记)

    1)工厂(包括厂名和厂长名)需建立一个管理数据库存储以下信息: 一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和电话; 一个车间又多个工人,每个工人哟职工号、姓名、年龄、性别和工种; 一个车间生产多种产品,产品有产品号和价格; 一个车间生产多种零件,一个零件也可能为多个车间制造。零件由零件号、重量和价格; 一个产品由多种零件组成,一种零件也可装配出多种产品; 产品与零件均存入仓库中; 厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。

    2)某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。产品有产品号和产品名两个属性,零件有零件号和零件名两个属性,原材料有材料编号和材料名两个属性,仓库有仓库编号和仓库名两个属性,生成和存储过程均记录当前时间。

    (1)试用E-R图画出此工程产品,零件,材料,仓库的概念模型。

    (2)将E-R图转换成关系模式,并指出每个表的主键和外键,主键用下划线标记,外键用波浪线标记。  

    (3)写出创建仓库表与零件表的标准SQL语句,要求具有完整的约束关系,表名和字段名用汉字描述。

    3)某企业集团下属工厂中,每个工厂生产多种产品,且每一种产品可以在多个工厂生产,每个工厂按照固定的计划数量生产产品;每个工厂聘用多名职工,且每名职工只能在一个工厂工作,工厂聘用职工有聘期和工资。工厂的属性有工厂编号、厂名、地址,产品的属性有产品编号、产品名、规格,职工的属性有职工号、姓名。根据上述语义画出E-R图。

  • 相关阅读:
    并购支付牌照中金支付90.01%股权该注意哪些风险
    TCP/IP 原理、实现方式与优缺点
    机器学习:朴素贝叶斯算法(Python)
    21、JavaScript学习笔记——try...catch
    重新定义容器化 Serverless 应用的数据访问
    FFplay文档解读-42-视频过滤器十七
    JetBrains IDE全新UI预览版来了,要做简洁与强大兼顾的IDE
    【Java】基础练习 --- Stream练习
    Fiddler 系列教程(一)初识Fiddler,我们能用fiddler做什么?
    关闭vscode检查更新
  • 原文地址:https://blog.csdn.net/m0_54674275/article/details/126401369