zoukankan      html  css  js  c++  java
  • 数据库设计法

      01.简述数据库完整性及其作用?

    解析:数据的准确性,保证数据中数据的准确性。

      02.基本操作语句(DML DDL DCL)有哪些?语法是?

    DML(data manipulation language):自动提交的数据库操作语言
    它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样

    DDL(data definition language):自动提交的数据库定义语言
    主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用

    DCL(Data Control Language):
    是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL

    DQL:数据库查询语言,关键字:select

    Insert、update、delete、select

    这里以student表为例:

    Insert into student(name,age) values(‘张三’,18)

    Update student set name=’ 李四’ where id=1

    Delete from student where id=2

    见到update和delete,必须有where

    Select * from student where id=1

      03.常用的聚合函数有哪些?

    Avg():求平均值

    Sum():求和

    Max();求最大值

    Min():求最小值

    Count():求总的记录数,count(1)和count(*)等价,一般认为count(1)效率高。

      04.表联接分为哪几种类型?

    内连接,外连接和交叉联接(数据库原理)

    三、 数据库

    1. 为什么要设计数据库?

    首先,良好的数据库设计:

    01. 可以节省数据的存储空间

    02. 能够保证数据的完整性

    03. 方便进行数据库应用系统的开发

    糟糕的数据库设计:

    01. 数据冗余、存储空间浪费

    02. 内存空间浪费

    03. 数据更新和插入的异常

    由此,我们得出一个结论,当数据库比较复杂时,我们需要设计数据库

    2. 软件项目开发周期中数据库设计

    wpsC9F4.tmp

    从上图我们可以看出,软件开发中设计数据库的步骤:

    首先,我们要从现实世界的需求构建出一个模型,这种模型通过E——R图的方式反映,如果确定E——R满足了客户的需求,那么我们需要将E-R图规范化,构建出数据库模型图,当然在这个图表中要反映出各个数据对象之间的关系,最后我们根据数据库模型图构建出符合我们需求的数据库。

         需求分析阶段:分析客户的业务和数据处理需求

    概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完整

    详细设计阶段:应用三大范式审核数据库结构

    代码编写阶段:物理实现数据库,编码实现应用

    软件测试阶段:……

    安装部署:……

    3. 设计数据库的步骤

    01. 收集信息

    与该系统有关的人员进行交流,座谈,充分了解用户需求,理解数据库需要完成的任务。

    02. 标识实体(Entity)

    标识数据库要管理的关键对象或者实体,实体一般都是名词

    03. 标识每个实体的属性

    04. 标识实体之间的关系

    4.E—R图

    wpsCA04.tmp

    映射基数:

    主要分为以下几类:

    一对一:一辆车只能对应一个车位

    一对多:一个客房可以入住多个客人

    多对一:多个客人可以入住一个客房

    多对多:一本书可以被多个人接,一个人也可以借多本书

            或者是一个老师可以教多个班级,一个班级可以被多个老师教

    一个关系的属性名的集合称为关系模式

    Rdbms:

    relational database management system 关系型数据库管理系统

    01. 仅有好的RDBMS并不足以避免数据冗余,必须在数据的设计中创建好的表结构

    02. Dr  E.F.codd,一个IBM研究员。最初定义了规范化的三个级别,范式是具有最小冗余的表结构

    03. 这些范式是:

    第一范式(1ST NF—First  Normal   Form)

    第一范式的目标是确保每列的原子性

    如果没列都是不可再分的最小单元(也称为最小的原子单元),则满足第一范式(1nf)

    第二范式(2nd NF—Second  Normal  Form)

    如果一个关系满足1NF,并且除了主键以外的其他列,都依赖于该主键,则满足第二范式(2NF),第二范式要求每个表只描述一件事情。

    第三范式(3rd NF—Third  Normal  Form)

    如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式(3NF)

    今天总算理解清楚了一点,:

    第二范式是其他列都要依赖于主键列,但是没有说明是直接依赖还是间接依赖。也就是直接依赖和间接依赖均可以。但是第三范式明确指出只能是直接依赖。

    如果出现间接依赖的情况,要单独独立出来一张表.

    5,规范化和性能的关系

    为满足某种商业目标,数据库性能比规范化数据库更重要

      具体策略和方法:

    01. 通过在给定的表中添加额外字段,以大量减少需要从中搜索信息所需的时间

    02. 通过在给定的表中插入计算列(比如成绩总分),以方便查询

            在数据规范化同时,要综合考虑数据库的性能。

      05.设计数据库步骤

    第一步:需求分析(收集信息)

    第二步:绘制E-R图 (标示实体 ,找到实体的属性 , 标注实体间的关系)

    第三步:将E-R图转换成数据库模型图

    第四步:将数据库模型图转换成数据表

      06.如何绘制E-R图

      矩形;实体

      椭圆形:属性

      菱形:关系

      07.如何绘制数据库模型图

    PowerDesigner :选择PhysicalModel

    如有有人不小心关掉了Platter,对工具栏点击右键,勾选Platter即可。

    当我们将数据库模型图设计完毕后,可以通过菜单中的database下的

    Generate Database来生成对应的sql

      08.三大范式规范数据库设计

    第一范式:保证每列的原子性,不可再被拆分

    第二范式:在满足第一范式的基础上,一张表只能描述一件事情

    第三范式:在满足第二范式的基础上,除了主键列之外其他列都要直接依赖于主键

    要在规范化和性能之间取一个平衡

    四、 课程总结

    01. 在需求分析阶段,设计数据库的一般步骤是什么?

    收集信息

    标识实体

    标识每个实体的属性

    标识实体之间的关系

    02. 在概要设计阶段和详细设计阶段,设计数据库的步骤是什么?

    绘制E——R图

    将E—R图转化为数据库模型图

    应用三大范式规范化表设计

    03. 为了设计结构良好的数据库,需要遵守一些专门的规则,称为数据库的设计范式,分别是什么?

    三大范式的例子:

    wpsCA15.tmp     

                    

            挺辛苦的,好好看吧!

  • 相关阅读:
    Oracle 查询表空间容量脚本
    C#保留小数位的方法集合
    asp.net c# 去掉字符串中重复项并将结果遍历出来算法
    汇总sql server数据库所有表名、列数、行数
    Web表单设计之注册表单
    精简高效的CSS命名准则和方法
    MSSQL查看和解除表锁
    XML通用操作类
    Ajax学习笔记一(xmlHttpRequest对象)
    SQL Server无法生成FRunCM线程|FRunCM 线程|FRunCM
  • 原文地址:https://www.cnblogs.com/weiguangyi/p/5103026.html
Copyright © 2011-2022 走看看