欢迎来到天天文库
浏览记录
ID:39468445
大小:66.50 KB
页数:8页
时间:2019-07-04
《SQLServer设计和实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库设计和实现笔记一、回顾:数据库基本概念建库建表完整性约束函数增删改查的SQL语句聚合函数表连接查询二、数据库设计:数据库设计:规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。为什么要规范设计?如果需要保存和处理的信息只有十列八列,使用我们前面的知识就可以直观的进行表的设计,即使不同的人设计的结果不同,但一般也会在可承受的范围内,随着软件的工程化,如果需要处理的信息有两千列,该如何进行表的设计来存储和处理这些信息,仅仅凭经验或者直观感受恐怕难以实现,正如其他很多成熟的行业一样,这里面是有规矩的。按照规范设计的步骤进行设计,对操作它的编程代码来说
2、,会更容易,更易读,易扩展。设计数据库的步骤1.需求分析:分析客户的业务和数据处理需求2.概要设计:绘制E-R图,用于项目团队内部,设计人员和客户之间进行沟通,以确认信息的完整性。3.详细设计:将E-R图转换为多张表三、E-R图实体-关系图:是数据库设计的图纸1.实体:名词,对应表中的一行数据,图中表示为矩形2.属性:实体的特性,图中表示为椭圆3.关系:两个或者多个实体之间的联系,图中表示为菱形4.映射基数:一对一,一对多,多对一,多对多Q:如何将E-R图转换为表?Ans:1.将各实体转换为对应的表,将各属性转换为各表的列2.标识每个表的主键,没有主键的添加标识
3、列3.实现表之间的映射关系四、数据规范化:其实就是规范E-R图的过程。不合理的设计会出现:1、信息重复2、更新异常3、插入异常4、删除异常规范的设计:1.第一范式目标:确保每列的原子性,即每列都是不可再分的最小数据单元如:地址可分为省和市2.第二范式满足第一范式,且除了主键外的其它列,都依赖于该主键,则满足第二范式如:订单表(订单编号,产品编号,订购日期,价格。。。。。。)其它列都和订单编号相关,而产品编号和订单编号无关,所以应该把产品编号删除。3.第三范式满足第二范式,且除了主键外,其它列都不传递依赖于主键,则满足第三范式如:订单表(订单编号,订购日期,顾客姓
4、名,顾客编号。。。。。。)顾客姓名和顾客编号相关,而顾客编号和订单编号相关,即传递依赖于订单编号,所以应该把顾客姓名列删除。五、规范和性能的关系:没有最好,只有最合适的。并非越规范越好,也不是只考虑性能,一般在规范和性能间进行一定的取舍。六、数据库的实现:lT-SQL语句回顾insertdeleteupdateselectl使用SQL语句创建和删除数据库数据库文件的组成:数据文件和日志文件数据文件和日志文件的扩展名?对这两个文件都可以设置文件初始大小,增长方式等。创建数据库的语法:createdatabase数据库名称on[primary]([name=逻辑文件
5、名,]filename=物理文件名[,size=大小][,maxsize=最大容量][,filegrowth=增长量])[logon](同上)GO删除数据库:一般创建数据库之前,应该先检测当前服务器中是否存在同名的数据库,如果存在则先删除后再创建数据库。删除数据库:dropdatabase数据库名称如何检测呢?SQLServer中数据库清单放在系统数据库master的sysdatabases表中,检测语句:usemastergoifexists(select*fromsysdatabaseswherename=’你要创建的数据库名称’)dropdatabase你
6、要创建的数据库名称createdatabase你要创建的数据库名称on()()gol使用SQL语句创建和删除表建表的步骤:1.确定表中的列2.确定每列的数据类型3.添加约束4.添加关系创建表的语法:createtable表名(列名数据类型列的特征,列名数据类型列的特征,。。。。。。)列的特征是指:是否为空,是否标识列,是否默认值,是否主键等。删除表:先检测,有则删除,然后建立表某个数据库中表的清单在该数据库里的系统表sysobjects中use数据库1goifexists(select*fromsysobjectswherename=’你要创建的表名’)drop
7、table你要创建的表名createtable你要创建的表名(……)l使用SQL语句创建和删除约束约束的目的:确保表中数据的完整型常用的约束类型:1.主键约束(PrimaryKeyConstraint):要求主键列数据唯一,并且不允许为空2.唯一约束(UniqueConstraint):要求该列唯一,允许为空,但只能出现一个空值。3.检查约束(CheckConstraint):某列取值范围限制、格式限制等,如有关年龄的约束4.默认约束(DefaultConstraint):某列的默认值,如我们的男性学员较多,性别默认为“男”5.外键约束(ForeignKeyCo
8、nstraint):用于
此文档下载收益归作者所有