`

数据库设计

 
阅读更多

一、E-R模型(entity-relationship)

     

      三个属性:实体集、联系集合属性

(1)实体:现实世界区别于其他对象的“对象”或“事物”

(2)联系:多个实体之间的联系

(3)属性:类似于数据表的列

 

    码:(1)超码:在实体集可以唯一标示一个实体的属性集合(比如说一个id标示不同的人,人就相当于实 体)

           (2)候选码:最小的超码

           (3) 被选作来区分不同实体的候选码

 

二、关系数据库的设计

(1)函数依赖

      如果属性集A能够推出属性集B,那么可以说属性集B函数依赖于属性集A,即A-->B

 

(2)平凡的函数依赖

        如果B属于A,那么A-->B的函数依赖就是平凡的

 

(3)第一范式:所有的属性域都是原子的

         什么叫都是原子的,就是不可分割的,举个俩字来说,如果某个表中有一个属性为children,该属性的值是一些名字的组合,那么该表就不符合第一范式

         原子性是可以根据自己的感受去衡量的,比如说你说整数是原子的,那么如果你的属性是整数,那你的属性具有原子性,如果你说整数是单个数字的组成,如果你的属性是整数,那么,你的属性就是非原子的

 

(4)第二范式

       在满足第一范式的情况下,每个非主属性都完全函数依赖于超码R

       举个例子(来源百度):

从定义可以看出,若某个 1NF 的关系的主码只由一个列组成,那么这个关系就是 2NF 关系。但是,如果主码是由多个属性列共同组成的复合主码,并且存在非主属性对属性的部分函数依赖,则这个关系不是 2NF 关系。  

例如:在关系 SB(学号,姓名,系名,系主任,课号,成绩)中,
非主属性“姓名”仅函数依赖于“学号”,也就是“姓名”部分函数依赖于主码(学号,课号)而不是完全依赖;
非主属性“系名”仅函数依赖于“学号”,也就是“系名”部分函数依赖于主码(学号,课号)而不是完全依赖;
非主属性“系主任”仅函数依赖于“学号”,也就是“系主任”部分函数依赖于主码(学号,课号)而不是完全依赖。

 

(5)BC范式(boyce-codd)

         当关系满足如果R中非平凡的函数依赖的左边都是超键,则此关系R属于BCNF;

        也就是说BC范式满足两个条件:a-->b是平凡的函数依赖;a-->b,a是整个关系R的超码

 

(6)第三范式

        第三范式多加了一个条件:a-->b,(b-a)的每个属性A都包含在R的一个候选码中

       从另一个角度解释:

       如果关系 R ∈ 2NF,并且 R 中每一个非主属性对任何候选码都不存在传递函数依赖,则 R ∈ 3NF 。

        

      关系模式 SC 和 SD 均是 2NF 的,但在关系 SD(学号,姓名,系名,系主任)中,存在如下函数依赖:

 

     学号 → 系名

 

     系名 → 系主任

 

     系名 -\→ 学号
     那么,存在着一个传递函数依赖“学号 → 系主任”成立。

     从上面的分析可以知道,因为在 SD 中存在传递函数依赖,所以 SD 不满足 3NF。

 

 

(7)分解算法

     2NF分解

       

1. 用组成主码的属性集合的每一个子集作为主码构成一个表。
2. 对于每个表,将依赖于此主码的属性放置到此表中。
例如:将 SB 分解为两个关系模式
SC(学号,课号,成绩),主码为(学号,课号)
SD(学号,姓名,系名,系主任),主码为 学号。
 
3NF分解
1. 对于不是候选码的每个决定因子,从关系模式中删除依赖于该决定因子的属性。
2. 新建一个关系模式,新的关系模式中应包含在原表中所有依赖于该决定因子的属性。
3. 将决定因子作为新关系模式的主码。
例如:将 SD 分解为
SE(学号,姓名,系名)
SF(系名,系主任)

 

分享到:
评论

相关推荐

    网吧管理系统数据库设计

    网吧管理系统数据库设计和相关文档网吧管理系统数据库设计和相关文档网吧管理系统数据库设计和相关文档网吧管理系统数据库设计和相关文档以及相关报表网吧管理系统数据库设计和相关文档网吧管理系统数据库设计和相关...

    4-软件数据库设计文档模板.docx

    软件数据库设计文档模板 software database design report document" 在软件开发项目中,数据库设计是非常重要的一步骤,它直接影响到软件系统的性能、安全性和可维护性。本文档提供了一份软件数据库设计文档模板...

    支付交易平台数据库设计文档

    标题“支付交易平台数据库设计文档”表明本文档详细介绍了构建银行支付交易平台时所需设计的数据库架构。数据库设计是信息技术领域中极为重要的一环,尤其是在金融行业,其准确性、完整性和安全性的要求尤为严格。本...

    模板-数据库设计说明书.doc

    "数据库设计说明书模板" 数据库设计说明书是对数据库的设计和实现进行详细描述的文档,旨在为数据库的开发、测试和维护提供依据。该文档通常包括以下几个部分:项目概况、数据库设计概述、逻辑设计、物理设计、数据...

    数据库设计教程(第二版)pdf

    根据提供的信息,我们可以推断出这是一本关于数据库设计的教程书籍,并且是其第二版。由于具体的页面内容并未给出,我们将基于标题、描述及标签中的信息,对可能涉及的关键知识点进行归纳总结。 ### 数据库设计的...

    工资管理系统数据库设计报告(数据库课程设计).doc

    工资管理系统数据库设计报告是信息技术学院信息管理与信息系统专业的一份课程设计报告,旨在通过实际操作来学习和理解数据库系统的设计与实现。这份报告涵盖了多个关键阶段,包括需求分析、概念设计、逻辑设计以及...

    教务管理系统 数据库设计

    ### 教务管理系统数据库设计详解 #### 一、引言 随着信息技术的发展,教育领域的信息化建设也变得日益重要。教务管理系统作为学校信息化建设的重要组成部分,对于提高学校的管理水平和服务质量具有重要意义。本篇...

    停车场管理系统数据库设计.doc

    停车场管理系统数据库设计 停车场管理系统数据库设计是指在停车场管理系统中对数据库的设计和实现,旨在提高停车场管理的效率和准确性。该设计文档主要包括概念设计阶段、逻辑设计阶段、物理设计阶段、数据库实施...

    数据库设计规范.doc

    数据库设计规范 数据库设计规范是指在设计数据库时需要遵循的规则和标准,以确保数据库的设计是合理、科学和高效的。本文档将详细介绍数据库设计规范的各个方面,包括设计原则、命名规范、设计文件内容等。 设计...

    数据库系统原理实验五/大作业:数据库设计与应用开发大作业

    随着数据量的日益增长和业务需求的不断变化,数据库设计及应用开发显得尤为重要。本次实验——数据库系统原理实验五/大作业,旨在帮助学生深入理解数据库设计的整个流程,并培养他们将理论知识转化为实际应用的能力...

    数据库设计大作业(完整版 )

    "数据库设计大作业(完整版)" 本资源为大连理工大学软件学院的数据库设计大作业,背景为某一农产品网上商城系统的数据库设计。该系统有居民、销售商两个身份,他们各自所具有的操作描述如下: 业务规则 1. 角色...

    数据库设计指南 数据库设计实例

    所以我们最近找了些对数据库设计颇有造诣的专业人士给大家传授一些设 计数据库的技巧和经验。我们的编辑从收到的130 个反馈中精选了其中的60 个最佳技巧,并把这些 技巧编写成了本文,为了方便索引其内容划分为5 个...

    学生选课系统数据库设计

    "学生选课系统数据库设计" 学生选课系统数据库设计是指根据学生选课系统的需求,设计和实施一个高效、可靠的数据库系统,以满足学生选课的需求。该系统涉及到多个方面,包括可行性分析、系统分析、逻辑设计、数据库...

    网上购物商城数据库设计

    网上购物商城数据库设计 数据库设计是网上购物商城的核心组件之一,涉及到整个系统的数据存储和管理。以下是网上购物商城数据库设计的相关知识点: 1. 数据库概念设计 在数据库设计中,需要遵守一定的命名规则和...

    数据库设计开发规范-阿里.pdf

    ### 数据库设计开发规范知识点概览 #### 一、数据库设计开发规范概述 《数据库设计开发规范-阿里.pdf》是一份由阿里巴巴云数据库服务部门编制的技术文档,旨在为数据库设计和开发提供一套全面且规范化的指导原则。...

    数据库设计(论文+方案)

    数据库设计(论文+方案)数据库设计(论文+方案)数据库设计(论文+方案)数据库设计(论文+方案)数据库设计(论文+方案)

    twitter 数据库 设计 微博数据库 设计

    twitter数据库 twitter数据库设计 微博数据库设计

    PowerDesigner的数据库设计与实现 PowerDesigner数据库建模技术

    数据库设计是软件开发中的关键步骤,它包括需求分析、概念模型设计、逻辑模型设计和物理模型设计。在这个过程中,PowerDesigner能帮助我们进行概念数据模型(CDM)和物理数据模型(PDM)的构建。 在"PowerDesigner...

    需求分析+概要设计+详细设计+数据库设计模板

    需求分析、概要设计、详细设计和数据库设计模板 需求分析是软件开发的第一步骤,是指确定软件需求的过程。需求分析的目的是确定软件的功能和性能,以便满足用户的需求。需求分析的输出是软件需求规格说明书(SRS)...

    数据库设计文档模板

    根据给定的文件信息,我们可以深入探讨数据库设计文档的关键知识点,尤其聚焦于其结构、功能以及如何有效地构建和管理数据库系统。以下是对标题、描述、标签以及部分内容的详细解析: ### 数据库设计文档模板 ####...

Global site tag (gtag.js) - Google Analytics