如何设计高级的数据库

相信大家认真看完这篇文章就会知道怎么去设计出高级的数据库了!!!

最近有朋友一直问我为什么需要规范的的数据库设计?

专业人士解析:

因为在实际的项目开发中,如果系统的数据存储量较大,设计的表比较多,表和表之间的关系比较

复杂,就需要首先考虑规范的数据库设计,然后进行具体的创建库,创建表的工作,不管是创建动

态网站,还是创建桌面窗口的应用程序,数据库设计的重要性都不言而喻。如果设计不当,会存在

数据操作异常,修改复杂,数据冗余等问题,程序性能就会受到影响。所以要有规范的数据库设计

才可以提高项目的应用性能!

这位同鞋问的好!什么是数据库设计???

大鹏告诉你:数据库设计就是将数据库中的数据实体及这些数据实体之间的关系,进行规划和结构化的过程。

如下图(学生信息数据库的结构也包括这四个数据实体之间的关系)

说完了数据库设计,接下来就说一说设计数据库的步骤:

项目的开发需要经过:需求分析,概要设计,代码编写,运行测试和打包发行几个阶段。

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

概要设计阶段:绘制数据库的E-R图,用于在项目团队内部,设计人员和客户之间的进行

沟通,确认需求信息的正确和完整性。

详细设计阶段:将E-R图转换为多张表,进行逻辑设计,确认各表的主外键,并应用数据

库设计的三大范式进行审核。然而后面就是交给代码编写阶段。

小窍门:无论数据库的大小和复杂程度如何,在进行数据库的系统分析时,都可以参考下列基本步骤:(不要告诉别人)

1.收集信息。

2.标识实体

3.标识每个实体需要存储的详细信息

4.标识实体之间的关系

标识实体:其实有的童鞋不知道怎么标识出实体,实体可以是有形的事物,如人或者产品;也可以是无形的事物,如商业

交易,公司部门,发薪周期。就以一个酒店管理系统数据库为例:我们需要标识出系统中最主要的实体。

可想而知那就是客房,客人。客房包括单人间,标准间,三人间,总统套房;客人包括客人姓名,客人身份信息等

这就是标识实体。实体一般是名词,一个实体只描述一件事情,不能重复出现含义相同的实体。

下一步需要做的就是要给实体存储详细的信息

客房:客房号,客房类型,客房状态,客房描述,床位数,入住人数,价格

客人:姓名,身份证号,客人编号,入住日期,结账日期,押金,总金额

概念设计————————————绘制E-R图(Entity-Relationship)

E-R图称为实体-关系图。它包括一些具有特定含义的图形符号

矩形表示实体集

椭圆表示属性

菱形标识联系集

直线用来连接属性和实体集,也用来连接实体集和联系集。

绘制E-R图可以使用Microsoft Visio软件具体如何使用就不依依介绍了

必背的三大范式:

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

第二范式:在第一范式的基础上更进一层,其目标是确保表中的每列都和主键相关。

第三范式:在第二范式的基础上更进一层,其目标是确保每列都和主键直接相关,而不是间接相关。

相信你们看到这里怎么去设计出高大上的数据库心里应该也有了一个如意小算盘了吧。

如果对你有帮助请别忘了支持一下!

时间: 2024-08-06 20:08:49

如何设计高级的数据库的相关文章

Sql Server数据库设计高级查询

-------------------------------------第一章  数据库的设计------------------------------------- 软件开发周期:     (1)需求分析     (2)概要设计     (3)详细设计     (4)编码     (5)集成测试     (6)上线运行     (7)后期维护 1,数据库设计步骤:     (1)收集信息     (2)标识对象(确定数据库中有哪些表)     (3)标识对象的属性(确定每个表中的例)  

Yii2.0高级框架数据库增删改查的一些操作(转)

yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 ----------------------------------------------------------------------------------------------------- User::find()->all();    //返回所有用户数据:User::findOne($id);   //返回 主键 id=1  的一条数

Yii2.0高级框架数据库增删改查的一些操作

yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 ----------------------------------------------------------------------------------------------------- User::find()->all();    //返回所有用户数据:User::findOne($id);   //返回 主键 id=1  的一条数

使用PowerDesigner 设计SQL Server 数据库

(转自:http://www.cnblogs.com/xugang/archive/2011/01/20/1939960.html) 工具: Sybase PowerDesigner 12.5 Microsoft  SQL Server 2005 第一步:概念数据模型 打开PowerDesigner 软件,设计“概念数据模型”(Conceptual Data Model),它通常用在概要设计阶段. 设计表结构 注意:如果Palette(工具面板)没有显示,可以在工具栏 --> 右键 --> 选

MySQL Workbench是一款专为MySQL设计的ER/数据库建模工具

  MySQL  Workbench是一款专为MySQL设计的ER/数据库建模工具.它是著名的数据库设计工具DBDesigner4的继任者.你可以用MySQL  Workbench设计和创建新的数据库图示,建立数据库文档,以及进行复杂的MySQL 迁移 MySQL Workbench是下一代的可视化数据库设计.管理的工具,它同时有开源和商业化的两个版本.该软件支持Windows和Linux系统,下面是一些该软件运行的界面截图:

如何使用php设计权限管理数据库

很多网站管理员都想获得php权限,admin,或者root.但如何使用php设置管理员数据库呢? 万事开头难,这里介绍一下. 首先在B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个"非法用户"很可能就能通过浏览器轻易访问到B/S系统中的所有功能.因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让

国际软件设计文档——数据库设计说明书

1 引言 1.1 编写目的 说明编写这份数据库设计说明书的目的,指出预期的读者. 1.2 背景 说明: a.  说明待开发的数据库的名称和使用此数据库的软件系统的名称: b.  列出该软件系统开发项目的任务提出者.用户以及将安装该软件和这个数据库的计算站(中心). 1.3 定义 列出本文件中用到的专门术语的定义.外文首字母组词的原词组. 1.4 参考资料 列出有关的参考资料: a.  本项目的经核准的计划任务书或合同.上级机关批文: b.  属于本项目的其他已发表的文件: c.  本文件中各处引

数据库设计范式和数据库优化

数据库设计三大范式: 1.原子性:每一列的属性值不可再分 2.原始性:对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性:要求每张表只表达一个意思 3.所有字段都和主键直接相关,如果要和其他表建立关联,可以增加外键. 数据库优化: 1.建立合适的索引.选取最适用的字段属性,将表中字段的宽度设得尽可能小,尽量把字段设置为NOT NULL 2.优化sql语句.使用连接(JOIN)来代替子查询(Sub-Queries),使用联合(UNION)来代替手动创建的临时表

架构设计之「数据库集群方案」

在之前的文章中,我们知道数据库服务可能已经成为了很多系统的性能关键点,甚至是瓶颈了.也给大家介绍了数据库服务器从主备架构.到主从架构.再到主主架构的基础方案.但如果单台机器已经不能满足完整业务数据存储的时候,我们就需要考虑采用多机甚至多中心的部署方案了. 今天我们就再来聊一聊,在多机环境下,数据库集群的架构方案. 同样,这里先不看细节,不管底层数据源是什么数据库,我们先谈架构方案.因为无论底层是 Mysql 还是 Redis.MongoDB,我们在架构设计上都是相通的. 针对多机的架构,常见有如