資料庫系統(Database System)包括了資料庫(Database)、資料庫管理系統(DBMS),也可以再加上其他的開發工具,或是應用系統。但是資料庫(Database)與資料庫管理系統(DBMS),是資料庫系統(Database System)最核心的部分。
這裡我們必須再解釋,什麼是關聯模式(Relational Model)? 什麼是資料庫? 什麼是資料庫管理系統?
所謂資料庫(Databse),就是指有組織的資料集合,當需要這些資料時,可以快速的從中取得。所以其實資料庫並不局限一定是數位的資料,只要符合以上定義,都可以說它是資料庫。
但是狹義的資料庫,是指以一定方式儲存在一起、能為多個使用者共享、具有儘可能小的冗餘度、與應用程式彼此獨立的資料集合,在這個定義下Word,Excel就不算是資料庫。
但是狹義的資料庫,是指以一定方式儲存在一起、能為多個使用者共享、具有儘可能小的冗餘度、與應用程式彼此獨立的資料集合,在這個定義下Word,Excel就不算是資料庫。
所謂關聯模式(Relational Model),是基於謂詞邏輯和集合論的一種資料模型,在這個模式中,所有的資料都以tuples來表示,並以之間的關聯來分成群組。所謂關聯式資料庫管理系統(RDBMS),就是管理系統用來管理關聯式資料庫。
說簡單一點,關聯式資料庫是資料庫的一種,除了關聯式資料庫之外,從以前到現在有許多類型的資料庫,如navigational model、hierarchical model、network model、object oriented model等等。
不同類型的資料庫有不同的設計概念與使用方法,關聯式資料庫就是可以透過關聯(relations)來擷取需要的資料,我們大部分學習的資料庫觀念都是屬於關聯式資料庫,例如Microsoft Access、Microsoft SQL Server、MySQL、Oracle都是屬於關聯式資料庫。
有人說relations就是table(表單),表單的集合就形成資料庫(database)。而column(欄)就是field,row(列)就是tuple,或是稱做record(記錄)。
也有人認為,relations不能說是table(表單),row也不能說是tuple。這些人認為table中有row,而relation中有tuple,也就是在relational model中是以tuple來代表一組資料。
但是上面的解釋可能很難懂,我們用下圖來說明,可能比較容易瞭解。
第一個表單中有userID, Name, DOB三個欄位(column),也就是表單中定義了這三個field。記錄了使用者編號、姓名、生日。
第二個表單中有TaskID, TaskDescription兩個欄位(column),也就是表單中定義了這兩個field。記錄了任務編號、任務描述。
我們現在希望把人跟任務搭上關係,也就是分配某些人去執行某些任務。所以就必須有第三個表單,定義userID跟TaskID這兩個field,以便知道哪個userID要執行哪個TaskID。
表單(table)中的一筆記錄(record),就是一個row,例如: (1, user1, 15/02/1985)。但是如果這個row寫成 (user1, 15/02/1985, 1),當然就跟原本的意義不同,所以你可以說table中的row是有順序性的 (ordered)。
table跟row的關係就如同在relational model中,relation跟tuple的關係,但是tuple的表示如: (userID=1, Name=user1, DOB=15/02/1985),如果你寫成 (Name=user1, userID=1, DOB=15/02/1985),其實是一樣的意思,所以你可以說tuple是沒有順序性的 (unordered)。
相關參考資料:
Relational database management system
Basic structures: rows and tables
The relational model: of tuples, relations, rows, and tables
Relation及Tuple定義
說簡單一點,關聯式資料庫是資料庫的一種,除了關聯式資料庫之外,從以前到現在有許多類型的資料庫,如navigational model、hierarchical model、network model、object oriented model等等。
不同類型的資料庫有不同的設計概念與使用方法,關聯式資料庫就是可以透過關聯(relations)來擷取需要的資料,我們大部分學習的資料庫觀念都是屬於關聯式資料庫,例如Microsoft Access、Microsoft SQL Server、MySQL、Oracle都是屬於關聯式資料庫。
有人說relations就是table(表單),表單的集合就形成資料庫(database)。而column(欄)就是field,row(列)就是tuple,或是稱做record(記錄)。
也有人認為,relations不能說是table(表單),row也不能說是tuple。這些人認為table中有row,而relation中有tuple,也就是在relational model中是以tuple來代表一組資料。
但是上面的解釋可能很難懂,我們用下圖來說明,可能比較容易瞭解。
第一個表單中有userID, Name, DOB三個欄位(column),也就是表單中定義了這三個field。記錄了使用者編號、姓名、生日。
第二個表單中有TaskID, TaskDescription兩個欄位(column),也就是表單中定義了這兩個field。記錄了任務編號、任務描述。
我們現在希望把人跟任務搭上關係,也就是分配某些人去執行某些任務。所以就必須有第三個表單,定義userID跟TaskID這兩個field,以便知道哪個userID要執行哪個TaskID。
表單(table)中的一筆記錄(record),就是一個row,例如: (1, user1, 15/02/1985)。但是如果這個row寫成 (user1, 15/02/1985, 1),當然就跟原本的意義不同,所以你可以說table中的row是有順序性的 (ordered)。
table跟row的關係就如同在relational model中,relation跟tuple的關係,但是tuple的表示如: (userID=1, Name=user1, DOB=15/02/1985),如果你寫成 (Name=user1, userID=1, DOB=15/02/1985),其實是一樣的意思,所以你可以說tuple是沒有順序性的 (unordered)。
相關參考資料:
Relational database management system
Basic structures: rows and tables
The relational model: of tuples, relations, rows, and tables
Relation及Tuple定義
0 留言