検索

第一章 数据库的设计

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 までご連絡ください。
MySQL:初心者が習得するための必須スキルMySQL:初心者が習得するための必須スキルApr 18, 2025 am 12:24 AM

MySQLは、初心者がデータベーススキルを学ぶのに適しています。 1.MySQLサーバーとクライアントツールをインストールします。 2。selectなどの基本的なSQLクエリを理解します。 3。マスターデータ操作:テーブルを作成し、データを挿入、更新、削除します。 4.高度なスキルを学ぶ:サブクエリとウィンドウの関数。 5。デバッグと最適化:構文を確認し、インデックスを使用し、選択*を避け、制限を使用します。

MySQL:構造化データとリレーショナルデータベースMySQL:構造化データとリレーショナルデータベースApr 18, 2025 am 12:22 AM

MySQLは、テーブル構造とSQLクエリを介して構造化されたデータを効率的に管理し、外部キーを介してテーブル間関係を実装します。 1.テーブルを作成するときにデータ形式と入力を定義します。 2。外部キーを使用して、テーブル間の関係を確立します。 3。インデックス作成とクエリの最適化により、パフォーマンスを改善します。 4.データベースを定期的にバックアップおよび監視して、データのセキュリティとパフォーマンスの最適化を確保します。

MySQL:説明されている主要な機能と機能MySQL:説明されている主要な機能と機能Apr 18, 2025 am 12:17 AM

MySQLは、Web開発で広く使用されているオープンソースリレーショナルデータベース管理システムです。その重要な機能には、次のものが含まれます。1。さまざまなシナリオに適したInnodbやMyisamなどの複数のストレージエンジンをサポートします。 2。ロードバランスとデータバックアップを容易にするために、マスタースレーブレプリケーション機能を提供します。 3.クエリの最適化とインデックスの使用により、クエリ効率を改善します。

SQLの目的:MySQLデータベースとの対話SQLの目的:MySQLデータベースとの対話Apr 18, 2025 am 12:12 AM

SQLは、MySQLデータベースと対話して、データの追加、削除、変更、検査、データベース設計を実現するために使用されます。 1)SQLは、ステートメントの選択、挿入、更新、削除を介してデータ操作を実行します。 2)データベースの設計と管理に作成、変更、ドロップステートメントを使用します。 3)複雑なクエリとデータ分析は、ビジネス上の意思決定効率を改善するためにSQLを通じて実装されます。

初心者向けのMySQL:データベース管理を開始します初心者向けのMySQL:データベース管理を開始しますApr 18, 2025 am 12:10 AM

MySQLの基本操作には、データベース、テーブルの作成、およびSQLを使用してデータのCRUD操作を実行することが含まれます。 1.データベースの作成:createdatabasemy_first_db; 2。テーブルの作成:createTableBooks(idintauto_incrementprimarykey、titlevarchary(100)notnull、authorvarchar(100)notnull、published_yearint); 3.データの挿入:InsertIntoBooks(タイトル、著者、公開_year)VA

MySQLの役割:WebアプリケーションのデータベースMySQLの役割:WebアプリケーションのデータベースApr 17, 2025 am 12:23 AM

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

MySQL:最初のデータベースを構築しますMySQL:最初のデータベースを構築しますApr 17, 2025 am 12:22 AM

MySQLデータベースを構築する手順には次のものがあります。1。データベースとテーブルの作成、2。データの挿入、および3。クエリを実行します。まず、createdAtabaseおよびcreateTableステートメントを使用してデータベースとテーブルを作成し、InsertINTOステートメントを使用してデータを挿入し、最後にSelectステートメントを使用してデータを照会します。

MySQL:データストレージに対する初心者向けのアプローチMySQL:データストレージに対する初心者向けのアプローチApr 17, 2025 am 12:21 AM

MySQLは、使いやすく強力であるため、初心者に適しています。 1.MYSQLはリレーショナルデータベースであり、CRUD操作にSQLを使用します。 2。インストールは簡単で、ルートユーザーのパスワードを構成する必要があります。 3.挿入、更新、削除、および選択してデータ操作を実行します。 4. Orderby、Where and Joinは複雑なクエリに使用できます。 5.デバッグでは、構文をチェックし、説明を使用してクエリを分析する必要があります。 6.最適化の提案には、インデックスの使用、適切なデータ型の選択、優れたプログラミング習慣が含まれます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター