資料庫的數據模型可分為三種模型
Ⅰ 資料庫主要有哪幾種數據模型
層次模型
網狀模型
關系模型
對象關系模型
對象模型
還有這些資料庫模型:
數據聯合模型
面向概念模型
實體-屬性-值模型
多位資料庫模型
半結構化模型
Ⅱ 資料庫常用的數據模型有哪三種
資料庫常用的數據模型有層次模型、網狀模型、關系模型三種。
1、層次模型
層次模型是資料庫系統最早使用的一種模型,它的數據結構Q是一棵"有向樹"。根結點在最上端,層次最高,子結點在下,逐層排列。層次模型的特徵是:有且只有一個根結點;其他結點有且僅有一個父結點網狀模型。
2、網狀模型
以網狀結構表示實體與實體之間的聯系。網中的每一個結點代表一個記錄類型,聯系用鏈接指針來實現。網狀模型可以表示多個從屬關系的聯系,也可以表示數據間的交叉關系,即數據間的橫向關系與縱向關系,它是層次模型的擴展。網狀模型可以方便地表示各種類型的聯系,但結構復雜,實現的演算法難以規范化。其特徵是:允許結點有多於一個父結點;可以有一個以上的結點沒有父結點。
3、關系模型
關系模型以二維表結構來表示實體與實體之間的聯系,它是以關系數學理論為基礎的。關系模型的數據結構是一個「二維表框架"組成的集合。每個二維表又可稱為關系。在關系模型中,操作的對象和結果都是二維表。關系模型是目前最流行的資料庫模型。支持關系模型的資料庫管理系統稱為關系資料庫管理系統,Access就是一種關系資料庫管理系統。
描述的—致性,不僅用關系描述實體本身,而且也用關系描述實體之間的聯系;可直接表示多對多的聯系。關系必須是規范化的關系,即每個屬性是不可分的數據項,不許表中有表。關系模型是建立在數學概念基礎上的,有較強的理論依據。
Ⅲ 什麼是數據模型,包含哪幾種類型 (資料庫)
1)數據模型的分類:
最常用的數據模型是概念數據模型和結構數據模型:
①概念數據模型(信息模型):面向用戶的,按照用戶的觀點進行建模,典型代表:E-R圖
②結構數據模型:面向計算機系統的,用於DBMS的實現,典型代表有:層次模型,網狀模型、關系模型,面向 對象模型
數據結構:主要描述數據的類型、內容、性質以及數據間的聯系等,是目標類型的集合。目標類型是資料庫的組成成分,一般可分為兩類:數據類型、數據類型之間的聯系。數據類型如DBTG(資料庫任務組)網狀模型中的記錄型、數據項,關系模型中的關系、域等。
聯系部分有DBTG網狀模型中的系型等。數據結構是數據模型的基礎,數據操作和約束都基本建立在數據結構上。不同的數據結構具有不同的操作和約束。
數據操作:數據模型中數據操作主要描述在相應的數據結構上的操作類型和操作方式。它是操作算符的集合,包括若干操作和推理規則,用以對目標類型的有效實例所組成的資料庫進行操作。
數據約束:數據模型中的數據約束主要描述數據結構內數據間的語法、詞義聯系、他們之間的制約和依存關系,以及數據動態變化的規則,以保證數據的正確、有效和相容。它是完整性規則的集合,用以限定符合數據模型的資料庫狀態,以及狀態的變化。
約束條件可以按不同的原則劃分為數據值的約束和數據間聯系的約束;靜態約束和動態約束;實體約束和實體間的參照約束等。
Ⅳ 資料庫按數據的組織方式來分可以分為哪三種模型
1、層次模型:
①有且只有一個結點沒有雙親結點(這個結點叫根結點)。
②除根結點外的其他結點有且只有一個雙親結點。
層次模型中的記錄只能組織成樹的集合而不能是任意圖的集合。在層次模型中,記錄的組織不再是一張雜亂無章的圖,而是一棵"倒長"的樹。
2、網狀模型 :
①允許一個以上的結點沒有雙親結點。
②一個結點可以有多個雙親結點。
網狀模型中的數據用記錄的集合來表示,數據間的聯系用鏈接(可看作指針)來表示。資料庫中的記錄可被組織成任意圖的集合。
3、關系模型:
關系模型用表的集合來表示數據和數據間的聯系。
每個表有多個列,每列有唯一的列名。
在關系模型中,無論是從客觀事物中抽象出的實體,還是實體之間的聯系,都用單一的結構類型
(4)資料庫的數據模型可分為三種模型擴展閱讀
1、無條件查詢
例:找出所有學生的的選課情況
SELECT st_no,su_no
FROM score
例:找出所有學生的情況
SELECT*
FROM student
「*」為通配符,表示查找FROM中所指出關系的所有屬性的值。
2、條件查詢
條件查詢即帶有WHERE子句的查詢,所要查詢的對象必須滿足WHERE子句給出的條件。
例:找出任何一門課成績在70以上的學生情況、課號及分數
SELECT UNIQUE student.st_class,student.st_no,student.st_name,student.st_sex,student.st_age,score.su_no,score.score
FROM student,score
WHERE score.score>=70 AND score.stno=student,st_no
這里使用UNIQUE是不從查詢結果集中去掉重復行,如果使用DISTINCT則會去掉重復行。另外邏輯運算符的優先順序為NOT→AND→OR。
例:找出課程號為c02的,考試成績不及格的學生
SELECT st_no
FROM score
WHERE su_no=『c02』AND score<60
3、排序查詢
排序查詢是指將查詢結果按指定屬性的升序(ASC)或降序(DESC)排列,由ORDER BY子句指明。
例:查找不及格的課程,並將結果按課程號從大到小排列
SELECT UNIQUE su_no
FROM score
WHERE score<60
ORDER BY su_no DESC
4、嵌套查詢
嵌套查詢是指WHERE子句中又包含SELECT子句,它用於較復雜的跨多個基本表查詢的情況。
例:查找課程編號為c03且課程成績在80分以上的學生的學號、姓名
SELECT st_no,st_name
FROM student
WHERE stno IN (SELECT st_no
FROM score
WHERE su_no=『c03』 AND score>80 )
這里需要明確的是:當查詢涉及多個基本表時用嵌套查詢逐次求解層次分明,具有結構程序設計特點。在嵌套查詢中,IN是常用到的謂詞。若用戶能確切知道內層查詢返回的是單值,那麼也可用算術比較運算符表示用戶的要求。
5、計算查詢
計算查詢是指通過系統提供的特定函數(聚合函數)在語句中的直接使用而獲得某些只有經過計算才能得到的結果。常用的函數有:
COUNT(*) 計算元組的個數
COUNT(列名) 對某一列中的值計算個數
SUM(列名) 求某一列值的總和(此列值是數值型)
AVG(列名) 求某一列值的平均值(此列值是數值型)
MAX(列名) 求某一列值中的最大值
MIN(列名) 求某一列值中的最小值
例:求男學生的總人數和平均年齡
SELECT COUNT(*),AVG(st_age)
FROM student
WHERE st_sex=『男』
例:統計選修了課程的學生的人數
SELECT COUNT(DISTINCT st_no)
FROM score
注意:這里一定要加入DISTINCT,因為有的學生可能選修了多門課程,但統計時只能按1人統計,所以要使用DISTINCT進行過濾。