首頁 資料庫 mysql教程 第一章 数据库的设计

第一章 数据库的设计

Jun 07, 2016 pm 05:45 PM
資料庫 設計

1.1 为什么需要规范的数据库设计 在第一阶段,根据业务需求,我们直接创建库、创建表、插入测试数据,然后再查询数据,为什么现在需要强调先设计再创建库、创建表呢?原因非常简单,正如我们修造建筑物一样,如果您是盖一间茅屋或一间简易平房,您会花钱请人

1.1 为什么需要规范的数据库设计

  在第一阶段,根据业务需求,我们直接创建库、创建表、插入测试数据,然后再查询数据,为什么现在需要强调先设计再创建库、创建表呢?原因非常简单,正如我们修造建筑物一样,如果您是盖一间茅屋或一间简易平房,您会花钱请人设计房屋图纸吗?毫无疑问,没人请。但是,如果是房地产开发商开发一个楼盘,修建多栋楼的居住小区,他会请人设计施工图纸吗?答案是肯定的,不但开发商会考虑设计施工图纸,甚至很多专业的购房者也会在看房时要求开发商出示设计图纸。

  同样道理,在实际的项目开发中,如果系统的数据存储量较大,设计的表比较多,表和表之间的关系比较复杂,我们就需要首先考虑规范的数据库设计,然后再进行具体的创建库、创建表的工作。不管是创建动态网站,还是创建桌面窗口应用程序,数据库设计的重要性都不言而喻。如果设计不当,查询起来就非常吃力,程序的性能也会受到影响。无论您使用的是SQL Server 还是 Oracle 数据库,通常进行规范化的数据库设计,美国服务器,都可以使您的程序代码更具体可读性,更容易扩展,从而也会提升项目的应用性能。

  1. 什么是数据库设计

  数据库设计就是将数据库中的数据对象以及这些数据对象之间关系,进行规划和结构化的过程。

  2. 数据库设计非常重要

  数据库中创建的数据结构的种类,以及在数据对象之间建立的复杂关系是决定数据库系统效率的重要因素。

  糟糕的数据库设计表现为以下几点。

  (1)效率底下。

  (2)更新和检索数据时会出现许多问题。

  良好的数据库设计表现为以下几点。

  (1)效率高。

  (2)便于进一步扩展。

  (3)使得应用程序开发变得更容易。

1.2 设计数据库的步骤

  经过了毕业设计项目开发、我们对项目的开发有了一个整体上的认识,项目开发需要经过需求分析、概要设计、详细设计、代码编写、运行测试和打包发行几个阶段。下面,重点讨论在各个阶段中数据库的设计过程。

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

    概要设计阶段:绘制数据库的E-R模型图,用于在项目团队内部、设计人员和客户之间进行沟通,确认需求信息的正确性和完整性。

    详细设计阶段:将E-R图转换为多张表,进行逻辑设计,确认各表的主外键,并应用数据库设计的三大范式进行审核。经项目组开会讨论确定后,还需根据项目的技术实现、团队开发能力以及项目的经费来源,选择具体的数据库(如SQL Server或Oracle等)进行物理实现,包括创建库、创建表,并创建我们后面将要学习的存储过程等。创建完毕后,开始进入代码编写阶段,开发前端应用程序。

  现在,我们共同讨论在需求分析阶段,后台数据库的设计步骤。

  需求分析阶段的重点是调查、收集并分析客户业务的数据需求、处理需求、安全性与完整性需求。

  常用的需求调研方法有在客户的公司跟班实习、组织召开调查会、邀请专人介绍、设计调查表,并请用户填写、查阅业务相关数据记录等。

  常用的需求分析方法有调查客户的公司住址情况、各部门的业务需求情况、协助客户分析系统的各种业务需求、确定新系统的边界。

  物理数据库的大小和复杂程度如何,在进行数据库的系统分析时,都可以参考下列基础步骤。

  (1)收集信息。

  (2)标识对象。

  (3)标识每个对象需要存储的详细信息。

  (4)标识对象之间的关系。

  1. 收集信息

  创建数据库之前,必须充分理解数据库需要完成的任务和功能。简单地说,我们需要了解数据库需要存储哪些信息(数据),实现哪些功能。

  2. 标识对象(实体)

  在收集需求信息后,必须标识数据库要管理的关键对象或实体。对象可以是有形的事物,如人或产品;也可以是无形的事务,如商业交易,公司部门或发薪周期。在系统中标识这些对象以后,与它们相关的对象就会条理清楚。

  3. 标识每个对象需要存储的详细信息(属性)

  将数据库中的主要对象标识为表的候选对象以后,下一步就是标识每个对象存储的详细信息,也称为该对象的属性,这些属性将组成表中的列。简单地说,就是需要细分出每个对象包含的子成员信息。

  4. 标识对象(实体)之间的关系

  关系型数据库有一项非常强大的功能,它能够关联数据库中各个项目的相关信息。不同类型的信息可以单独存储,但是如果需要,数据库引擎可以根据需要将数据组合起来。在设计过程中,要标识对象之间的关系,需要分析数据库表,确定这些表在逻辑上是如何相关的,然后添加关系列建立起表之间的连接。

1.3 绘制E-R(实体-关系)图

  在需求分析阶段解决了客户的业务和数据处理需求后,就进入了我们的概要设计阶段,我们需要和项目团队的其他成员以及我们的客户沟通,讨论数据库的设计是否满足客户的业务和数据处理需求。和机械行业需要机械制图,建筑行业需要施工图一样,我们的数据库设计也需要图形化的表达方式---E-R(Entity-Relationship)实体关系图,它包括一些具有特定含义的图形符号。

1.3.1 实体-关系模型

  1. 实体

  所谓实体就是指现实世界中具有区分其他事物的特征或属性并与其他实体有联系的对象。例如,BBS论坛系统中的用户(如张三、李四、王五等)、帖子、板块(动画板块、情感天地板块等)等,实体一般是名词,它对应我们表中的一行数据,例如张三用户这个实体,将对应于“用户表”中,张三用户所在的一行数据,包括他的密码、出生日期、电子邮件等信息。严格地说,实体是指表中一行一行的特定数据,但我们在开发时,也常常把整个表也称为一个实体。

  2. 属性

  属性可以理解为实体的特征。例如,“用户”这一实体的属性有昵称、出生日期和电子邮件等。属性对应表中的列。

  3. 关系

  关系是两个或多个实体之间的联系。

  如图所示为用户实体和版块实体之间的关系。实体使用方块表示,实体一般是名词,属性使用椭圆标识,一般也是名词,关系使用菱形标识,一般是动词。

  

  4. 映射基数

  映射基数表示可以通过关系与实体关联的其他实体的个数。对于实体集X和Y之间的二元关系,映射基数必须为下列基数之一。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

榮耀Magic V3首發AI離焦護眼技術:有效緩和近視發展 榮耀Magic V3首發AI離焦護眼技術:有效緩和近視發展 Jul 18, 2024 am 09:27 AM

7月12日消息,榮耀MagicV3系列今日正式發布,搭載全新榮耀視力舒緩綠洲護眼屏,在屏幕本身俱備高規格和高素質的同時,還開創性的引入AI主動式護眼技術。據悉,傳統的緩解近視的方式是“近視鏡”,近視眼鏡度數均勻分佈,保證了視線中心區域成像在視網膜之上,但周邊區域成像在視網膜後,視網膜感應到成像在後,促進眼軸向後生長,從而使度數加深。目前主要的緩解近視發展的方式之一是“離焦鏡”,其中心區域度數正常,週邊區域透過光學設計分區調整,從而使周邊區域成像落在視網膜前,

vivo訊號最強手機! vivo X100s搭載寰宇訊號放大系統:21天線、360°環繞設計 vivo訊號最強手機! vivo X100s搭載寰宇訊號放大系統:21天線、360°環繞設計 Jun 03, 2024 pm 08:41 PM

5月13日消息,vivoX100s今晚正式發布,除了出色的影像,新機在訊號方面表現也十分強悍。根據vivo官方介紹,vivoX100s採用了創新的寰宇訊號放大系統,該系統配備了高達21根天線。這項設計基於直屏進行了重新優化,以平衡5G、4G、Wi-Fi、GPS以及NFC等眾多訊號需求。這使得vivoX100s成為了vivo有史以來訊號接收能力最強的手機。新款手機還採用了獨特的360°環繞設計,天線分佈在機身周圍。這項設計不僅增強了訊號的強度,還針對日常各種握持姿勢進行了優化,避免了因握持方式不當導

iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 Jul 18, 2024 am 05:48 AM

蘋果公司最新發布的iOS18、iPadOS18以及macOSSequoia系統為Photos應用程式增添了一項重要功能,旨在幫助用戶輕鬆恢復因各種原因遺失或損壞的照片和影片。這項新功能在Photos應用的"工具"部分引入了一個名為"已恢復"的相冊,當用戶設備中存在未納入其照片庫的圖片或影片時,該相冊將自動顯示。 "已恢復"相簿的出現為因資料庫損壞、相機應用未正確保存至照片庫或第三方應用管理照片庫時照片和視頻丟失提供了解決方案。使用者只需簡單幾步

1399元起 榮耀X60i手機開售:視覺四等邊OLED直屏 1399元起 榮耀X60i手機開售:視覺四等邊OLED直屏 Jul 29, 2024 pm 08:25 PM

7月29日消息,榮耀X60i手機今日正式開售,先發1,399元。設計上,榮耀X60i手機採用居中挖孔直屏設計,四邊近乎無界的超窄邊框,大大拓寬了視野邊界。榮耀X60i參數顯示器:6.7吋高清顯示器電池:5000mAh大容量電池處理器:天璣6080處理器(台積電6nm,2x2.4G的A76+6×2G的A55)系統:MagicOS8.0系統其他功能: 5G訊號增強靈動膠囊螢幕下指紋雙MIC降噪知識問答攝影能力:後置雙攝系統:5000萬像素主攝200萬像素輔助鏡頭前置自拍鏡頭:800萬像素價格:8GB

在PHP中使用MySQLi建立資料庫連線的詳盡教學 在PHP中使用MySQLi建立資料庫連線的詳盡教學 Jun 04, 2024 pm 01:42 PM

如何在PHP中使用MySQLi建立資料庫連線:包含MySQLi擴充(require_once)建立連線函數(functionconnect_to_db)呼叫連線函數($conn=connect_to_db())執行查詢($result=$conn->query())關閉連線( $conn->close())

全新堆疊工藝!小米MIX Fold 4首搭金沙江「立體異型」電池 全新堆疊工藝!小米MIX Fold 4首搭金沙江「立體異型」電池 Jul 20, 2024 am 03:20 AM

7月19日消息,小米MIXFold4首旗艦折疊新機今晚正式發布,首次搭載「立體異形電池」。據介紹,小米MIXFold4在電池技術上實現了重大突破,專為折疊螢幕設計了創新的「立體異形電池」。傳統折疊式螢幕設備多採用常規方形電池,空間利用效率較低。為解決此問題,小米沒有採用常見的捲繞式電芯,而是全新開發疊片製程,打造全新形態的電池,大幅提升了空間利用率。電池技術創新為了實現精確交替堆疊正負極片,確保鋰離子安全嵌入,小米開發了新型超音波焊接機和疊片機,提高了焊接和裁切精

如何在PHP中處理資料庫連線錯誤 如何在PHP中處理資料庫連線錯誤 Jun 05, 2024 pm 02:16 PM

PHP處理資料庫連線報錯,可以使用下列步驟:使用mysqli_connect_errno()取得錯誤代碼。使用mysqli_connect_error()取得錯誤訊息。透過擷取並記錄這些錯誤訊息,可以輕鬆識別並解決資料庫連接問題,確保應用程式的順暢運作。

小米百元機 Redmi 14C 設計規格曝光 將於 8 月 31 日發布 小米百元機 Redmi 14C 設計規格曝光 將於 8 月 31 日發布 Aug 23, 2024 pm 09:31 PM

小米的Redmi品牌正準備在其產品組合中增加另一款經濟型手機——Redmi14C。該設備已確認將於8月31日在越南發布。然而,在發布之前,這款手機的規格已經透過越南零售商被披露。 Redmi14CRedmi經常在新系列中帶來全新的設計,Redmi14C也不例外。這款手機背面有一個大的圓形相機模組,與前代的設計完全不同。藍色配色版甚至採用漸層設計,讓它看起來感覺更高端。不過,其實Redmi14C是一款經濟型手機。相機模組包括四個環;一個環內裝有5000萬像素主傳感器,另一個可能裝有用於深度信息

See all articles