講關(guān)系數(shù)據(jù)庫的結(jié)構(gòu)的計算機英語
計算機的英語是牽扯到很多專業(yè)的術(shù)語,所以學習起來有點困難,小編今天就給大家整理了有關(guān)于計算機的英語,有時間可以多多參考一下
計算機英語
Structure of the Relational database
The relational model is the basis for any relational database management system (RDBMS).A relational model has three core components: a collection of objects or relations, operators that act on the objects or relations, and data integrity methods. In other words, it has a place to store the data, a way to create and retrieve the data, and a way to make sure that the data is logically consistent.
A relational database uses relations, or two-dimensional tables, to store the information needed to support a business. Let's go over the basic components of a traditional relational database system and look at how a relational database is designed. Once you have a solid understanding of what rows, columns, tables, and relationships are, you'll be well on your way to leveraging the power of a relational database.
Tables, Row, and Columns
A table in a relational database, alternatively known as a relation, is a two-dimensional structure used to hold related information. A database consists of one or more related tables.
Note: Don't confuse a relation with relationships. A relation is essentially a table, and a relationship is a way to correlate, join, or associate two tables.
A row in a table is a collection or instance of one thing, such as one employee or one line item on an invoice. A column contains all the information of a single type, and the piece of data at the intersection of a row and a column, a field, is the smallest piece of information that can be retrieved with the database's query language. For example, a table with information about employees might have a column called LAST_NAME that contains all of the employees' last names. Data is retrieved from a table by filtering on both the row and the column.
Primary Keys, Datatypes, and Foreign Keys
The examples throughout this article will focus on the hypothetical work of Scott Smith, database developer and entrepreneur. He just started a new widget company and wants to implement a few of the basic business functions using the relational database to manage his Human Resources (HR) department.
Relation: A two-dimensional structure used to hold related information, also known as a table.
Note: Most of Scott's employees were hired away from one of his previous employers, some of whom have over 20 years of experience in the field. As a hiring incentive, Scott has agreed to keep the new employees' original hire date in the new database.
Row:A group of one or more data elements in a database table that describes a person, place, or thing.
Column:The component of a database table that contains all of the data of the same name and type across all rows.
You'll learn about database design in the following sections, but let's assume for the moment that the majority of the database design is completed and some tables need to be implemented. Scott creates the EMP table to hold the basic employee information, and it looks something like this:
Notice that some fields in the Commission (COMM) and Manager (MGR) columns do not contain a value; they are blank. A relational database can enforce the rule that fields in a column may or may not be empty. In this case, it makes sense for an employee who is not in the Sales department to have a blank Commission field. It also makes sense for the president of the company to have a blank Manager field, since that employee doesn't report to anyone.
Field:The smallest piece of information that can be retrieved by the database query language. A field is found at the intersection of a row and a column in a database table.
On the other hand, none of the fields in the Employee Number (EMPNO) column are blank. The company always wants to assign an employee number to an employee, and that number must be different for each employee. One of the features of a relational database is that it can ensure that a value is entered into this column and that it is unique. The EMPNO column, in this case, is the primary key of the table.
Primary Key:A column (or columns) in a table that makes the row in the table distinguishable from every other row in the same table.
Notice the different datatypes that are stored in the EMP table: numeric values, character or alphabetic values, and date values.
As you might suspect, the DEPTNO column contains the department number for the employee. But how do you know what department name is associated with what number? Scott created the DEPT table to hold the descriptions for the department codes in the EMP table.
The DEPTNO column in the EMP table contains the same values as the DEPTNO column in the DEPT table. In this case, the DEPTNO column in the EMP table is considered a foreign key to the same column in the DEPT table.
A foreign key enforces the concept of referential integrity in a relational database. The concept of referential integrity not only prevents an invalid department number from being inserted into the EMP table, but it also prevents a row in the DEPT table from being deleted if there are employees still assigned to that department.
Foreign Key:A column (or columns) in a table that draws its values from a primary or unique key column in another table. A foreign key assists in ensuring the data integrity of a table. Referential IntegrityA method employed by a relational database system that enforces one-to-many relationships between tables.
Data Modeling
Before Scott created the actual tables in the database, he went through a design process known as data modeling. In this process, the developer conceptualizes and documents all the tables for the database. One of the common methods for modeling a database is called ERA, which stands for entities, relationships, and attributes. The database designer uses an application that can maintain entities, their attributes, and their relationships. In general, an entity corresponds to a table in the database, and the attributes of the entity correspond to columns of the table.
Data Modeling:A process of defining the entities, attributes, and relationships between the entities in preparation for creating the physical database.
The data-modeling process involves defining the entities, defining the relationships between those entities, and then defining the attributes for each of the entities. Once a cycle is complete, it is repeated as many times as necessary to ensure that the designer is capturing what is important enough to go into the database. Let's take a closer look at each step in the data-modeling process.
Defining the Entities
First, the designer identifies all of the entities within the scope of the database application.The entities are the persons, places, or things that are important to the organization and need to be tracked in the database. Entities will most likely translate neatly to database tables. For example, for the first version of Scott's widget company database, he identifies four entities: employees, departments, salary grades, and bonuses. These will become the EMP, DEPT, SALGRADE, and BONUS tables.
Defining the Relationships Between Entities
Once the entities are defined, the designer can proceed with defining how each of the entities is related. Often, the designer will pair each entity with every other entity and ask, "Is there a relationship between these two entities?" Some relationships are obvious; some are not.
In the widget company database, there is most likely a relationship between EMP and DEPT, but depending on the business rules, it is unlikely that the DEPT and SALGRADE entities are related. If the business rules were to restrict certain salary grades to certain departments, there would most likely be a new entity that defines the relationship between salary grades and departments. This entity would be known as an associative or intersection table and would contain the valid combinations of salary grades and departments.
Associative Table:A database table that stores the valid combinations of rows from two other tables and usually enforces a business rule. An associative table resolves a many-to-many relationship.
In general, there are three types of relationships in a relational database:
One-to-many The most common type of relationship is one-to-many. This means that for each occurrence in a given entity, the parent entity, there may be one or more occurrences in a second entity, the child entity, to which it is related. For example, in the widget company database, the DEPT entity is a parent entity, and for each department, there could be one or more employees associated with that department. The relationship between DEPT and EMP is one-to-many.
One-to-one In a one-to-one relationship, a row in a table is related to only one or none of the rows in a second table. This relationship type is often used for subtyping. For example, an EMPLOYEE table may hold the information common to all employees, while the FULLTIME, PARTTIME, and CONTRACTOR tables hold information unique to full-time employees, part-time employees, and contractors, respectively. These entities would be considered subtypes of an EMPLOYEE and maintain a one-to-one relationship with the EMPLOYEE table. These relationships are not as common as one-to-many relationships, because if one entity has an occurrence for a corresponding row in another entity, in most cases, the attributes from both entities should be in a single entity.
Many-to-many In a many-to-many relationship, one row of a table may be related to many rows of another table, and vice versa. Usually, when this relationship is implemented in the database, a third entity is defined as an intersection table to contain the associations between the two entities in the relationship. For example, in a database used for school class enrollment, the STUDENT table has a many-to-many relationship with the CLASS table—one student may take one or more classes, and a given class may have one or more students. The intersection table STUDENT_CLASS would contain the combinations of STUDENT and CLASS to track which students are in which classes.
Assigning Attributes to Entities
Once the designer has defined the entity relationships, the next step is to assign the attributes to each entity. This is physically implemented using columns, as shown here for the SALGRADE table as derived from the salary grade entity.
After the entities, relationships, and attributes have been defined, the designer may iterate the data modeling many more times. When reviewing relationships, new entities may be discovered. For example, when discussing the widget inventory table and its relationship to a customer order, the need for a shipping restrictions table may arise.
Once the design process is complete, the physical database tables may be created. Logical database design sessions should not involve physical implementation issues, but once the design has gone through an iteration or two, it's the DBA's job to bring the designers "down to earth." As a result, the design may need to be revisited to balance the ideal database implementation versus the realities of budgets and schedules.
關(guān)系數(shù)據(jù)庫的結(jié)構(gòu)
關(guān)系模型是任何關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)的基礎。一個關(guān)系模型有二個核心組件:對象或關(guān)系的集合,作用于對象或關(guān)系上的操作,以及數(shù)據(jù)完整性規(guī)則。換句話說,關(guān)系數(shù)據(jù)庫有一個存儲數(shù)據(jù)的地方,一種創(chuàng)建和檢索數(shù)據(jù)的方法,以及一種確認數(shù)據(jù)的邏輯一致性的方法。
一個關(guān)系數(shù)據(jù)庫使用關(guān)系或二維表來存儲支持某個事物所需的信息。讓我們了解一下一個傳統(tǒng)的關(guān)系數(shù)據(jù)庫系統(tǒng)的基本組件并目學習如何設計一個關(guān)系數(shù)據(jù)庫。一旦你對于行、列、表和關(guān)聯(lián)是什么有了深刻理解,你就能夠充分發(fā)揮關(guān)系數(shù)據(jù)庫的強大功能。
表,行和列
在關(guān)系數(shù)據(jù)庫中,一個表(或者說一個關(guān)系)是一個用于保存相關(guān)信息的二維結(jié)構(gòu)。一個數(shù)據(jù)庫由一個或者多個相關(guān)聯(lián)的表組成。
注意:不要混淆了關(guān)系和關(guān)聯(lián)。一個關(guān)系實際上是一個表,而一個關(guān)聯(lián)指的是一種連接、結(jié)合或聯(lián)合兩個表的方式。
表中的一行是一種事物的集合或?qū)嵗?,比如一個員工或發(fā)票上的一項。表中的一列包含了一類信息;而且行列交叉點上的數(shù)據(jù),字段,即是能夠用數(shù)據(jù)庫查詢語言檢索到的最小片信息。舉個例子來說,一個員工信息表可能有一個“名字”列,列中就包含所有員工的名字。數(shù)據(jù)是通過對行、列進行過濾而從表中檢索出來的。
主碼、數(shù)據(jù)類型和外碼
本篇文章均以假設的斯科特·史密斯的工廠為例,他是數(shù)據(jù)庫的建立者和企業(yè)的主辦人。他剛開辦了一個飾品公司并目想要使用關(guān)系數(shù)據(jù)庫的幾項基本功能來管理人力資源部門。
關(guān)系:用來保存相關(guān)信息的一個二維結(jié)構(gòu)(也就是表)。
注意:大多數(shù)斯科特的雇員都是雇自過去的從業(yè)者,他們中有些人在這個領域己經(jīng)有20年的經(jīng)驗了。出于雇用的目的,斯科特同意在新數(shù)據(jù)庫中維持新進員工最初的雇傭日期。
行:在一個數(shù)據(jù)庫表中的一組單數(shù)據(jù)或多數(shù)據(jù)元素,用于描述一個人、地方或事物。
列:列是數(shù)據(jù)庫表的組件,它包含所有行中同名和同類型的所有數(shù)據(jù)。
你會在下面章節(jié)學到如何設計數(shù)據(jù)庫,現(xiàn)在讓我們假設數(shù)據(jù)庫大部分己經(jīng)設計完成并且有一些表需要被執(zhí)行。斯科特創(chuàng)建了EMP表來保存基本的員工信息,就像這樣:
你可能注意到傭金列和管理人列中有一些單元格中沒有值;它們是空值。一個關(guān)系數(shù)據(jù)庫能夠規(guī)定列中的一個單元格是否為空。如此,可以明確那些非銷售部的員工傭金單元為空。同樣也明確了公司董事長的管理人單元為空,因為這個員工不需要向任何人匯報工作。
單元格:是數(shù)據(jù)庫查詢語言所能夠檢索到的最小片信息。一個單元格就是一個數(shù)據(jù)庫表的行和列交叉形成的。
另一方面,沒有哪個員工的員工編號單元為空。公司總是希望為每個員工分配一個員工號,并目這個號碼必須是每個員工都不同的。關(guān)系數(shù)據(jù)庫的一個特性能夠確定某列的鍵入值必須為單值。如此,員工編號列便是這個表的主碼。
主碼:主碼即是表中的一列(或多列),使每一行能夠區(qū)別于同表中的其他行。
留意一下EMP表中存儲的不同數(shù)據(jù)類型:數(shù)值型,字符型或字母型,以及日期型。
如你所想,部門成員列保存的是員工所在部門的編號。但是你如何知道哪個部門名稱對應哪個部門編號呢?斯科特建立了DEPT表來具體描述EMP表中提到的部門編號的情況。
EMP表中的部門編號列同DEPT表中的部門編號列有著相同的值。既然如此,EMP表中的部門編號列便被看作是與DEPT表中相同列對應的外碼。
外碼加強了關(guān)系數(shù)據(jù)庫中參考完整性的概念。參考完整性的概念不只可以阻止無效的部門編號被插入EMP表中,而且在某部門仍有員工的情況下,可以防止DEPT表中該部門的信息被刪除。
外碼:表中的一列(或多列),它的值來自于其他表的主碼列或單值列。一個外碼有助于確定表中數(shù)據(jù)的完整性。
參考完整性:是關(guān)系數(shù)據(jù)庫用來加強表間一對多關(guān)聯(lián)的一種方式。
數(shù)據(jù)建模
在斯科特于數(shù)據(jù)庫中創(chuàng)建真實表之前,他要經(jīng)過一個稱作數(shù)據(jù)建模的過程。在這個過程中,數(shù)據(jù)庫創(chuàng)建者定義和填寫數(shù)據(jù)庫中所有表。有一種為數(shù)據(jù)庫建模的方式叫作ERA,它可以表示出實體、實體間的關(guān)聯(lián)和實體的屬性。數(shù)據(jù)庫設計者使用一個能夠支持實體、實體屬性和實體間關(guān)聯(lián)的應用程序。通常,一個實體對應數(shù)據(jù)庫中的一個表,而實體的屬性對應于表中的列。
數(shù)據(jù)建模:一個定義實體、實體屬性和實體間關(guān)聯(lián)的過程,從而為建立物理數(shù)據(jù)庫做準備。
數(shù)據(jù)建模過程包括定義實體、定義實體間關(guān)聯(lián)以及定義每個實體的屬性的過程。一旦一個周期完成,就需要不斷重復直到設計者抓住了重點,足以開始建立數(shù)據(jù)庫。讓我們進一步了解為數(shù)據(jù)庫建模過程的步驟。
定義實體
首先,設計者確定數(shù)據(jù)庫應用程序范圍內(nèi)的所有實體。實體是人、地方或事物,它們對于整個團體是重要的且需要被記錄在數(shù)據(jù)庫中。實體將被巧妙的轉(zhuǎn)化為數(shù)據(jù)表。比如,在第一版斯科特飾品公司數(shù)據(jù)庫中,他定義了四個實體:員工、部門、工資水平和獎金。它們將稱為EMP(員工)表,DEPT(部門)表,SALGRADE(工資水平)表和BONUS(獎金)表。
定義實體間的關(guān)聯(lián)
一旦定義了實體,設計者就能夠繼續(xù)定義每個實體間是如何關(guān)聯(lián)的。通常,設計者通常將每個實體同其他實體配對,并目考慮:“兩者之間是否存在關(guān)聯(lián)呢?”實體間的某些關(guān)聯(lián)是明顯的,某些不是。
在飾品公司數(shù)據(jù)庫中,員工實體和部門實體間極可能存在關(guān)聯(lián),而依據(jù)事物間的關(guān)系原則,部門實體跟工資水平實體間似乎就沒有關(guān)聯(lián)了。如果事物間的關(guān)系原則是用來約束某個部門的工資水平的,就可能需要一個新的實體來說明工資水平和部門之間的關(guān)聯(lián)。這個實體被稱作關(guān)系表或交表,其中包含工資水平和部門之間的有效聯(lián)合。
關(guān)系表:是一個數(shù)據(jù)庫表,其中保存著另外兩個表的行(記錄)間的有效結(jié)合,并且通常強調(diào)了事物間的關(guān)系原則。關(guān)聯(lián)表處理的是一個多對多關(guān)聯(lián)。
通常,關(guān)系數(shù)據(jù)庫間有二種關(guān)聯(lián)方式:
·一對多關(guān)聯(lián):最常見的關(guān)聯(lián)是一對多關(guān)聯(lián)。意思是對于每個給出的現(xiàn)有實體(即父實體)都有一個或多個現(xiàn)有的另一個實體(即子實體)與之相關(guān)聯(lián)。舉個例子來說,在飾品公司數(shù)據(jù)庫中,部門實體是一個父實體,而每個部門中,都有一個或多個員工屬于該部門。這樣,部門實體和員工實體間的關(guān)聯(lián)就是一對多關(guān)聯(lián)。
·一對一關(guān)聯(lián):在一個一對一關(guān)聯(lián)中,表中的一行只關(guān)聯(lián)另一個表中的一行甚至0行。這種關(guān)聯(lián)類型通常用于子類型數(shù)據(jù)中。例如,一個員工表可能保存了所有員工的信息,而全職表、兼職表和承包人表則分別保存全職員工、兼職員工和承包人的信息。這些實體被認為是員工表的子表,并目同員工表維持一對一關(guān)聯(lián)。這種關(guān)系不像一對多關(guān)聯(lián)那么常見,因為如果一個實體與另一個實體總有對應行,在大多數(shù)情況下,兩個實體中的屬性只在一個實體內(nèi)出現(xiàn)就可以了。
·多對多關(guān)聯(lián):在多對多關(guān)聯(lián)中,表的一行可能對應另一個表的許多行,反之亦然。通常,當這些關(guān)聯(lián)在數(shù)據(jù)庫中被執(zhí)行時,往往再定義第三個實體用來保存前兩個實體間的所有關(guān)聯(lián)。例如,在一個學籍注冊數(shù)據(jù)庫中,學生表與班級表之間有一個多對多關(guān)聯(lián)——一個學生可能聽一門或多門課程,并目一個班級也可能有一個或多個學生。而學生_班級關(guān)系表中就包含了學生和班級之間的關(guān)系,以表明哪個學生在哪個班。
指定實體屬性
一旦設計者定義了實體間關(guān)聯(lián),下一步就是去指定每個實體的屬性。這是實現(xiàn)列的使用,如右圖所示由工資水平實體所建立的工資水平表。
重復步驟:我們?nèi)匀辉谠?/p>
在定義了實體、關(guān)聯(lián)以及屬性之后,設計者往往要多重復幾次數(shù)據(jù)建模過程。當我們在回顧關(guān)聯(lián)時,就會發(fā)現(xiàn)需要建立新的實體。比如,當討論飾品庫存表和與它相關(guān)的客戶訂單時,就會發(fā)現(xiàn)需要制定一個送貨約束表。
一旦設計過程完成,下面將要建立實際的數(shù)據(jù)庫表。邏輯數(shù)據(jù)庫的設計過程不會牽涉實際執(zhí)行中的問題。然而,一旦設計進入到實際的運作,數(shù)據(jù)庫管理員就會很快讓設計者從理想回到現(xiàn)實中來。結(jié)果,設計就可能需要再次構(gòu)想以求得理想的數(shù)據(jù)庫存運行與預算和進度之間的平衡。
講關(guān)系數(shù)據(jù)庫的結(jié)構(gòu)的計算機英語相關(guān)文章: