1%20数据库设计_第1页
1%20数据库设计_第2页
1%20数据库设计_第3页
1%20数据库设计_第4页
1%20数据库设计_第5页
已阅读5页,还剩46页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、3 Sept. 2007 Neusoft ConfidentialJava WebJava Web技术技术Copyright 2008 By Neusoft Group. All rights reserved3 Sept. 2007 Neusoft Confidential数据库设计数据库设计3 Sept. 2008Confidential数据库设计数据库设计1、数据库设计、数据库设计2、数据库的物理模型、数据库的物理模型3、PowerDesigner建模软件建模软件4、DDL语言语言(数据定义语言数据定义语言)5、创建数据库、创建数据库6、数据可行性分析、数据可行性分析7、如何查阅、如何查

2、阅DB设计文档设计文档3 Sept. 2008Confidentialbookshopbookshop演示演示项目项目bookshopbookshop项目项目的需求的需求bookshopbookshop项目项目的静态页面的静态页面bookshopbookshop项目项目的数据库设计的数据库设计bookshopbookshop项目项目的数据库编码的数据库编码3 Sept. 2008Confidential1、DB概念模型 独立于任何数据库独立于任何数据库 表示现实中的表示现实中的事物事物和和事物间的关系事物间的关系实体(实体(EntityEntity)关系关系(relation)(relatio

3、n) 实体实体: :现实中的事物现实中的事物n实体的构成实体的构成实体(实体(EntityEntity)实体名实体名实体属性实体属性属性名属性名属性数据类型属性数据类型属性是否为关键字?属性是否为关键字?属性是否为空?属性是否为空?属性默认值属性默认值规则规则1、数据库设计3 Sept. 2008Confidential属性的数据类型:属性的数据类型:分类分类数据类型数据类型整数类型整数类型Integer, Short Integer, Long Integer, ByteInteger, Short Integer, Long Integer, Byte小数类型小数类型Float, Shor

4、t Float, Long FloatFloat, Short Float, Long FloatNumber, DecimalNumber, Decimal字符类型字符类型Characters, Long CharactersCharacters, Long CharactersVariable Characters, Long Variable Characters, Long varvar Characters, Text Characters, Text货币类型货币类型MoneyMoney日期时间类型日期时间类型Date, Time, Date & Time, Timestam

5、pDate, Time, Date & Time, Timestamp二进制类型二进制类型Binary, Long Binary, ImageBinary, Long Binary, Image3 Sept. 2008Confidentialn实体的构成案例实体的构成案例实体(实体(EntityEntity)图书图书实体属性实体属性1 1ISBNISBN编号编号数据类型数据类型: :Character(11)Character(11)是关键字是关键字不能为空不能为空无默认值无默认值实体属性实体属性2 2实体属性实体属性n n规则规则: :只能包含数字和只能包含数字和- -3 Sept.

6、 2008Confidentialn实体的框图表示实体的框图表示图书图书图书编号图书编号 A13 图书名图书名 A20 作者作者 A30 出版社出版社 A30 单价单价 float 图书数量图书数量 I 封面图片封面图片 A10图书图书图书编号图书编号 A13 图书名图书名 VA20 作者作者 VA10 出版社出版社 VA30 单价单价 float 图书数量图书数量 I 封面图片封面图片 VA103 Sept. 2008Confidentialn练习:画出顾客实体的框图练习:画出顾客实体的框图顾客顾客顾客编号顾客编号 Integer 顾客邮件地址顾客邮件地址 VA50 顾客密码顾客密码 A6

7、顾客名顾客名 VA10 顾客地址顾客地址 VA50 顾客邮编顾客邮编 A6 3 Sept. 2008Confidential 实体间的关系实体间的关系n实体间关系的构成实体间关系的构成关系(关系(relationshiprelationship)关系名关系名对应关系对应关系1:11:11:m1:mm:nm:n班级班级班长班长班级班级学生学生; ;图书类别图书类别图书图书学生学生课程课程; ;图书图书顾客顾客参与关系的实体参与关系的实体3 Sept. 2008Confidentialn实体间关系的构成案例实体间关系的构成案例购买关系购买关系购买购买对应关系对应关系m:nm:n参与关系的实体参与关

8、系的实体顾客顾客图书图书3 Sept. 2008Confidentialn实体间关系的图形表示实体间关系的图形表示图书图书图书编号图书编号 A13 图书名图书名 VA20 作者作者 VA10 出版社出版社 VA30 单价单价 float 图书数量图书数量 I 封面图片封面图片 VA10顾客顾客顾客编号顾客编号 Integer 顾客邮件地址顾客邮件地址 VA50 顾客密码顾客密码 A6 顾客名顾客名 VA10 顾客地址顾客地址 VA50 顾客邮编顾客邮编 A6 m mn n购买购买3 Sept. 2008Confidentialn练习练习 画出图书和图书类型间的关系画出图书和图书类型间的关系图书

9、图书图书编号图书编号 A13 图书名图书名 VA20 作者作者 VA10 出版社出版社 VA30 单价单价 float 图书数量图书数量 I 封面图片封面图片 VA10图书类型图书类型类型编号类型编号 Integer 类型名类型名 VA20 类型描述类型描述 A50 m mn n图书图书_ _类型类型3 Sept. 2008Confidential数据库设计数据库设计1、数据库设计、数据库设计2、数据库的物理模型、数据库的物理模型3、PowerDesigner建模软件建模软件4、DDL语言语言(数据定义语言数据定义语言)5、创建数据库、创建数据库6、数据可行性分析、数据可行性分析7、如何查阅、

10、如何查阅DB设计文档设计文档3 Sept. 2008Confidential2、数据库的物理模型 数据库的物理模型?数据库的物理模型? 数据库概念模型中的数据库概念模型中的“实体实体”和和“关系关系”在具体数在具体数据库中的表示。据库中的表示。 SQL Server SQL Server数据库概述数据库概述3 Sept. 2008Confidential关系数据库管理系统关系数据库管理系统SQL Server 服务器服务器客户端客户端客户端应用程序客户端应用程序n SQL Server SQL Server 是一个高性能的关系数据库管理系统是一个高性能的关系数据库管理系统(RDBMSRDBMS

11、),它基于客户端,它基于客户端/ /服务器结构服务器结构n RDBMS RDBMS 的作用:提供数据库的定义、操纵、运的作用:提供数据库的定义、操纵、运行控制(包括数据安全性控制、数据完整性控制、行控制(包括数据安全性控制、数据完整性控制、并发控制、数据库恢复机制)、维护等功能并发控制、数据库恢复机制)、维护等功能3 Sept. 2008ConfidentialnSQL SQL SeerverSeerver 数据库的构成数据库的构成SQL ServerSQL Server组组DBDB服务器服务器1 1DBDB服务器服务器n n数据库目录数据库目录管理管理安全安全数据库数据库1 1数据库数据库n

12、 n表表1 1表表n n列列1: 1:数据类型数据类型列列n: n:数据类型数据类型属性:数据类型属性:数据类型实体实体3 Sept. 2008ConfidentialnSQL SQL SeerverSeerver 数据库的构成数据库的构成概念模型概念模型数据库数据库实体实体表表实体名称实体名称表名表名实体的属性实体的属性表中的列表中的列属性名属性名列名列名属性的数据类型属性的数据类型列的数据类型列的数据类型关键字关键字主键主键3 Sept. 2008ConfidentialnSQL SQL SeerverSeerver 中的系统数据类型中的系统数据类型l数字数据数字数据整型数据:存储整数整型

13、数据:存储整数小数数据:包含存储在最小有效数上的数据小数数据:包含存储在最小有效数上的数据bigintbigint占占8 8个字节,值的范围为个字节,值的范围为 -2 -263632 26363-1 -1intint占占4 4个字节,值的范围为个字节,值的范围为 -2 -231312 23131-1 -1smallintsmallint占占2 2个字节,值的范围为个字节,值的范围为 -32768 -3276832 76732 767tinyinttinyint占占1 1个字节,值的范围为个字节,值的范围为 0 0255255decimal (p,s)decimal (p,s)p p为精度,最大

14、为精度,最大3838;s s为小数位数,为小数位数,00spspnumeric (p,s)numeric (p,s)在在SQL ServerSQL Server中,等价于中,等价于decimaldecimal3 Sept. 2008Confidentiall数字数据(续)数字数据(续)近似数字数据:表示浮点数据的近似数字近似数字数据:表示浮点数据的近似数字货币数据:表示正的或负的货币值货币数据:表示正的或负的货币值float (float (n n) )从从 -1.79 -1.79E+308 E+308 到到 1.79 1.79E+308 E+308 之间的浮点数字数据;之间的浮点数字数据;n

15、 n 为用为用于存储科学记数法尾数的位数,同时指示其精度和存储大于存储科学记数法尾数的位数,同时指示其精度和存储大小,小,11nn5353realreal从从 3.40 3.40E+38 E+38 到到 3.40 3.40E+38 E+38 之间的浮点数字数据,存储大小之间的浮点数字数据,存储大小为为 4 4 字节;字节;SQL Server SQL Server 中,中,real real 的同义词为的同义词为 float(24)float(24) moneymoney占占8 8个字节,值的范围为个字节,值的范围为 -922 337 203 685 -922 337 203 685 477.

16、580 8 477.580 8 +922 337 203 685 +922 337 203 685 477.580 7477.580 7smallmoneysmallmoney占占4 4个字节,值的范围为个字节,值的范围为 -214 748 -214 748.3648 .3648 214 748.3647 214 748.36473 Sept. 2008Confidentiall日期和时间数据日期和时间数据l字符数据和字符数据和 Unicode Unicode 字符数据字符数据datetimedatetime占占8 8个字节,表示从个字节,表示从17531753年年1 1月月1 1日到日到 9

17、999 9999年年1212月月3131日的日期日的日期smalldatetimesmalldatetime占占4 4个字节,表示从个字节,表示从19001900年年1 1月月1 1日至日至20792079年年6 6月月6 6日日的日期的日期char (char (n n) )存储字符个数为存储字符个数为 0 08 0008 000varcharvarchar ( (n n) )存储字符个数为存储字符个数为 0 08 0008 000texttext存储字符个数为存储字符个数为 0 02 2GBGBncharnchar ( (n n) )存储字符个数为存储字符个数为 0 04 0004 000

18、nvarchar(nvarchar(n n) )存储字符个数为存储字符个数为 0 04 0004 000ntextntext存储字符个数为存储字符个数为 0 01 1GBGB3 Sept. 2008Confidentiall二进制数据二进制数据l其他其他binary(binary(n n) ) 存储字节个数存储字节个数 0 08 0008 000varbinary(varbinary(n n) ) 存储字节个数存储字节个数 0 08 0008 000imageimage存储字节个数存储字节个数 0 02 2 G Gbitbit存储位数据存储位数据cursorcursor存储对游标的引用存储对游

19、标的引用rowversionrowversion (timestamp) (timestamp)时间戳时间戳sql_variantsql_variant可存储除可存储除 texttext、ntextntext、imageimage、rowversionrowversion 之外的其他类型之外的其他类型tabletable存储函数返回结果存储函数返回结果uniqueidentifieruniqueidentifier存储存储 GUID GUID 以及以及 UUIDUUID3 Sept. 2008Confidentialn选择数据类型的指导原则l若列值的长度相差很大,那么使用变长数据类型若列值的长

20、度相差很大,那么使用变长数据类型例如某列存储的是人名,地址等例如某列存储的是人名,地址等l谨慎使用谨慎使用 tinyinttinyint 数据类型数据类型虽然节省空间,但扩展性很小虽然节省空间,但扩展性很小l如果行的存储量如果行的存储量 超过超过8 0008 000字节,使用字节,使用 text text 或者或者 imageimage若不大于若不大于8 0008 000字节,可使用字节,可使用charchar、varcharvarchar或者或者binarybinary数据类型数据类型l不要使用类型为不要使用类型为 float float 或者或者 real real 的列作为主键的列作为主

21、键因为它们不精确,所以不适合用于比较因为它们不精确,所以不适合用于比较3 Sept. 2008Confidential DB DB概念模型概念模型DBDB物理模型物理模型n实体的转换实体的转换 概念模型概念模型数据库数据库实体实体表表实体名称实体名称表名表名实体的属性实体的属性表中的列表中的列属性名属性名列名列名属性的数据类型属性的数据类型列的数据类型列的数据类型关键字关键字主键主键3 Sept. 2008Confidential DB DB概念模型概念模型DBDB物理模型物理模型n实体间关系的转换实体间关系的转换 将概念模型中实体间的关系将概念模型中实体间的关系 转换为转换为DBDB中表间的

22、关系中表间的关系 实现方法:实现方法:通过表间的主键,外键对应关系来实现通过表间的主键,外键对应关系来实现l 1:1 ( 1:1 (学生学生班级,某个学生是某个班的班长班级,某个学生是某个班的班长) ) 学号学号姓名姓名06310410101谭棋予谭棋予06310410202陈在东陈在东06310410203余强余强学生表学生表班级编号班级编号班级名称班级名称班长班长0610106软件软件1班班063104101210610206软件软件3班班06310410202班级表班级表3 Sept. 2008Confidential班级班级编号编号 I 名称名称 VA20 学生学生学号学号 A11 姓

23、名姓名 VA10 密码密码 A6 选班长选班长1 11 1班级班级编号编号 int 名称名称 char(20) 班长班长 char(11) 学生表学生表学号学号 char(11) 姓名姓名 Varchar(10) 密码密码 char(6) 概念模型概念模型SQL ServerSQL Server物理模型物理模型3 Sept. 2008Confidentiall1:m (1:m (图书类型图书类型图书,某个学生是某个班的班长图书,某个学生是某个班的班长) ) ISBN书名书名类型类型7-302-12264-4Jsp程序设计程序设计17-302-12264-2Java程序设计程序设计17-302-

24、12266-2三国演义三国演义2图书表图书表类型编号类型编号类型名类型名1计算机计算机2文学文学图书类型表图书类型表3 Sept. 2008Confidential图书类型图书类型编号编号 I 名称名称 VA20 图书图书ISBN A11 书名书名 VA10 隶属隶属m m1 1图书类型表图书类型表编号编号 int 名称名称 char(20) 图书表图书表ISBN char(11) 书名书名 Varchar(10) 图书类型图书类型 int 概念模型概念模型SQL ServerSQL Server物理模型物理模型3 Sept. 2008Confidentiallm:nm:n ( (顾客顾客图书

25、,某个顾客购买某本图书图书,某个顾客购买某本图书) ) ISBN书名书名类类型型7-302-12264-4Jsp程序设计程序设计17-302-12264-2Java程序设程序设计计17-302-12266-2三国演义三国演义2图书表图书表顾客编号顾客编号顾客名顾客名000001Jack000002张华张华顾客表顾客表顾客编号顾客编号ISBN0000017-302-12264-40000017-302-12264-20000027-302-12266-23 Sept. 2008Confidential顾客顾客编号编号 I 姓名姓名 VA20 图书图书ISBN A11 书名书名 VA10 购买购买

26、m mn n顾客表顾客表编号编号 int 名称名称 char(20) 图书表图书表ISBN char(11) 书名书名 Varchar(10) 概念模型概念模型SQL ServerSQL Server物理模型物理模型购买表购买表ISBN char(11) 顾客编号顾客编号 varchar(10) 3 Sept. 2008Confidentialn实体间关系的转换实体间关系的转换 总结总结实体实体A A,B B间的关系间的关系表表A A,B B间的关系实现间的关系实现1:11:1l将将A A表的主键放在表的主键放在B B表中,并作为表中,并作为B B表的外键。表的外键。l将将B B表的主键放在表

27、的主键放在A A表中,并作为表中,并作为A A表的外键。表的外键。l到底如何做,视具体项目,具体情况而定到底如何做,视具体项目,具体情况而定1:m1:ml将将1 1端表的主键放在端表的主键放在m m端的表中,并作为端的表中,并作为m m端表的外端表的外键键m:nm:nl新建一个表新建一个表(AB)(AB)来表示来表示A,BA,B实体间的关系。实体间的关系。l将将A A表的主键放在表的主键放在ABAB表中,并作为表中,并作为ABAB表的主键和表的主键和外键外键l将将B B表的主键放在表的主键放在ABAB表中,并作为表中,并作为ABAB表的主键和外表的主键和外键键3 Sept. 2008Confi

28、dential数据库设计数据库设计1、数据库设计、数据库设计2、数据库的物理模型、数据库的物理模型3、PowerDesigner建模软件建模软件4、DDL语言语言(数据定义语言数据定义语言)5、创建数据库、创建数据库6、数据可行性分析、数据可行性分析7、如何查阅、如何查阅DB设计文档设计文档3 Sept. 2008Confidential3、PowerDesigner建模软件 安装安装PowerDesignerPowerDesigner建模软件建模软件 powerDesignerpowerDesigner软件是软件是SysbaseSysbase公司开发的,用于数据建模的公司开发的,用于数据建模

29、的软件。用它可对数据库进行建模。软件。用它可对数据库进行建模。 用用PowerDesignerPowerDesigner为数据库建立概念模型为数据库建立概念模型(E-R(E-R模型模型) )用用PowerDesignerPowerDesigner为数据库建立物理模型为数据库建立物理模型3 Sept. 2008Confidential数据库设计数据库设计1、数据库设计、数据库设计2、数据库的物理模型、数据库的物理模型3、PowerDesigner建模软件建模软件4、DDL语言语言(数据定义语言数据定义语言)5、创建数据库、创建数据库6、数据可行性分析、数据可行性分析7、如何查阅、如何查阅DB设计

30、文档设计文档3 Sept. 2008Confidentialn创建数据库基本表对象创建数据库基本表对象n修改数据库基本表对象修改数据库基本表对象n删除数据库基本表对象删除数据库基本表对象4、DDL语言(数据定义语言)3 Sept. 2008Confidential创建数据库基本表对象创建数据库基本表对象n语法语法createcreate tabletable ( ( 列级完整性约束条件列级完整性约束条件 , , 列级完整性约束条件列级完整性约束条件 , ,) )3 Sept. 2008Confidentialn案例案例createcreate tabletable student studen

31、t( ( student_idstudent_id intint not null not null , ,student_namestudent_name varchar(10) not null varchar(10) not null , ,constraintconstraint pk_studentpk_student primary key ( primary key (student_idstudent_id ) ) )3 Sept. 2008Confidential修改数据库基本表对象修改数据库基本表对象n语法语法 alert alert tabletable add add

32、列级完整性约束条件列级完整性约束条件 modify modify drop drop 3 Sept. 2008Confidentialn案例案例 alertalert tabletable student student add add student_nostudent_no char(10) null char(10) null删除数据库基本表对象删除数据库基本表对象n语法语法 drop tabledrop table ;n案例案例dropdrop tabletable student student3 Sept. 2008Confidential数据库设计数据库设计1、数据库设计、数据库

33、设计2、数据库的物理模型、数据库的物理模型3、PowerDesigner建模软件建模软件4、DDL语言语言(数据定义语言数据定义语言)5、创建数据库、创建数据库6、数据可行性分析、数据可行性分析7、如何查阅、如何查阅DB设计文档设计文档3 Sept. 2008Confidential用数据库脚本创建用数据库脚本创建bookshopbookshop库中的表库中的表在企业管理器中创建数据库在企业管理器中创建数据库bookshopbookshop用用powerDesignerpowerDesigner创建数据库脚本创建数据库脚本5、创建数据库 方式3 Sept. 2008Confidential用用

34、powerDesignerpowerDesigner设计数据库的步骤设计数据库的步骤 创建数据库总结步骤一:步骤一:根据项目的需求分析设计数据库的根据项目的需求分析设计数据库的E-RE-R模型模型 项目的需求分析项目的需求分析 E-R模型模型n找出需求分析中的名词,这些名词是找出需求分析中的名词,这些名词是E-R模型中的实模型中的实体和实体中的属性体和实体中的属性在在E-R图中画实体和添加属性图中画实体和添加属性n找出需求分析中实体名词间的动词,这些动词是找出需求分析中实体名词间的动词,这些动词是E-R模型中实体间的关系模型中实体间的关系在在E-R图中添加实体间的关系图中添加实体间的关系3 S

35、ept. 2008Confidential用用powerDesignerpowerDesigner设计数据库的步骤设计数据库的步骤步骤二:步骤二:根据已设计好的数据库的根据已设计好的数据库的E-RE-R模型生成对应的特定数据模型生成对应的特定数据库的物理模型库的物理模型: :E-R模型模型物理模型物理模型 n用用tools-check model菜单项菜单项 检查检查E-R模型的正确性,模型的正确性,如果有错误和警告应改正如果有错误和警告应改正n用用tools-Generate physical Data Model菜单项菜单项 生成此生成此E-R模型的物理模型模型的物理模型3 Sept. 2

36、008Confidential用用powerDesignerpowerDesigner设计数据库的步骤设计数据库的步骤步骤三:步骤三:对已生成的物理模型进行修改对已生成的物理模型进行修改n将关系表的联合主键去掉,并新添一个流水号列作为将关系表的联合主键去掉,并新添一个流水号列作为此关系表的主键此关系表的主键n根据需求分析在关系表中添加其它附加的列根据需求分析在关系表中添加其它附加的列n将所有表的流水号主键列设定成为将所有表的流水号主键列设定成为“种子标示种子标示”3 Sept. 2008Confidential用用powerDesignerpowerDesigner设计数据库的步骤设计数据库的

37、步骤步骤四:步骤四:用已生成并修改后的物理模型生成创建数据库的脚本用已生成并修改后的物理模型生成创建数据库的脚本n用用DataBase-Generate DataBase菜单项生成菜单项生成创建数据库创建数据库的脚本,例如:的脚本,例如:bookshop.sqlbookshop.sqln在企业管理器中创建一个新的数据库,例如:在企业管理器中创建一个新的数据库,例如:bookshopn打开查询分析器,并连上打开查询分析器,并连上DB服务器,进入服务器,进入bookshop库,库,然后打开然后打开bookshop.sqlbookshop.sql,并运行此文件。,并运行此文件。n在企业管理器中在企业管理器中进入进入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论