COMP9311 Database Systems WEEK1

1.課程簡介

(1)教師是Rachid Hamadi,名字發(fā)音是Ra’shid空执。
(2)課程主要是理論,少量編程怀伦,使用開源軟件PostgreSQL 9.3.3脆烟,這個軟件是engineer-based山林,市面常見的是web-based MySQL房待。
(3)共3個assignment:
– Assignment 1: ER Diagram / Relational Mapping (10%) (due Week 5)
– Assignment 2: SQL Queries and Functions (15%) (due Week 8)
– Assignment 3: Normalisation / Relational Algebra / Transaction (15%) (due Week 11)

database的一個核心是消除redundancy,一條數(shù)據(jù)不要重復(fù)儲存驼抹。database最常見的問題是如何同時處理數(shù)據(jù)桑孩,比如,在一個賬戶下多人同時save和withdraw框冀。

(4)9311的后續(xù)課程
? COMP9315: how to build relational DBMSs (write your own Oracle)
? COMP9318: techniques for data mining (discovering patterns in DB)
? COMP6714: information retrieval, web search (dealing with text data)
? COMP9319: web search and data compression (dealing searching compressed web data)
? COMP932(1|2|3): service-oriented computing, which relies on DB background

課件中在大標(biāo)題上經(jīng)常能看到“cont’d”流椒,含義是continue

2.Data Modeling

(1)什么是database
最簡單的定義是Database is a set of tables that data are related to each other. 換言之,無關(guān)聯(lián)的數(shù)據(jù)不應(yīng)該用數(shù)據(jù)庫處理明也。
Textbook的定義:a collection of related data
(2)database中的重要概念
1.Data:能描述所代表的對象特征
2.Relationships:定義數(shù)據(jù)間的關(guān)聯(lián)
3.Constraints:關(guān)于數(shù)據(jù)和關(guān)聯(lián)的限制宣虾,比如bank teller不能修改客戶的賬戶金額
4.Redundancy: 每條數(shù)據(jù)只在一處存儲
5.Data manipulation:常見declarative和procedural兩類,data manipulation是數(shù)據(jù)操作温数,比如篩選數(shù)據(jù)绣硝、插入、刪除撑刺。declarative programming描述對象的性質(zhì)而不是流程鹉胖,主要在邏輯層面構(gòu)建管理數(shù)據(jù)庫,procedural programming起源于structured programming,基于程序調(diào)用(procedure call)或函數(shù)調(diào)用(function call)進(jìn)行流程控制甫菠。
6.Transactions:多條數(shù)據(jù)的同時處理挠铲,一條數(shù)據(jù)的多用戶處理,以及引發(fā)的數(shù)據(jù)集聚效應(yīng)
7.Concurrency:多用戶同時調(diào)用一個數(shù)據(jù)
8.Scale:big data被應(yīng)用的越來越多寂诱,如何構(gòu)建成規(guī)模的數(shù)據(jù)庫變成越來越重要的問題
(3)什么是data
Textbook的定義:Known facts that can be recorded and have explicit meaning. 這意味著數(shù)據(jù)應(yīng)該有數(shù)據(jù)類型和存儲方式等信息拂苹。
孤立存在的數(shù)據(jù)沒有什么價值,有關(guān)聯(lián)的數(shù)據(jù)形成確定的數(shù)據(jù)結(jié)構(gòu)痰洒,再通過database management system(DBMS)管理就實現(xiàn)了數(shù)據(jù)的價值醋寝。
(4)什么是DBMS
Textbook的定義:a collection of programs that enables users to create and maintain a database.
(5)什么是database system
Textbook的定義:the database and DBMS together.

按照范圍來記憶,上文提到最小的單元是data带迟,data關(guān)聯(lián)起來后形成database音羞,構(gòu)建對database的管理形成DBMS,database和DBMS加和構(gòu)成了database system仓犬。即
data < database < DBMS < database system

Simplified Database System Environment

(6)Database Users
1.Database Administrator(DBA):管理數(shù)據(jù)庫權(quán)限嗅绰,協(xié)調(diào)服務(wù)用戶,維護(hù)數(shù)據(jù)庫的軟硬件搀继,提升數(shù)據(jù)庫的效率
2.Databse Designer:定義數(shù)據(jù)結(jié)構(gòu)窘面,數(shù)據(jù)限制,數(shù)據(jù)傳輸叽躯,要直接對終端客戶的需求負(fù)責(zé)
3.End Users:數(shù)據(jù)查詢财边,數(shù)據(jù)更新等。其下又分為4類用戶--a. Casual点骑,偶爾使用數(shù)據(jù)庫酣难;b. Naive,占據(jù)絕大多數(shù)的end users黑滴,他們不需要了解數(shù)據(jù)庫的底層構(gòu)建憨募,而是在頂層使用,例如之前提到的bank-teller袁辈;c. Sophisticated菜谣,這些用戶非常熟悉database,他們的工作和database密切相關(guān)晚缩,例如商業(yè)分析師尾膊、科學(xué)家和工程師;d. Stand-alone荞彼,維護(hù)使用自己的數(shù)據(jù)庫冈敛,并不分享,例如個人通訊錄
(7)DBMS
課程核心是學(xué)會SQL-Structured Query Language卿泽,具體使用什么樣的DBMS不重要莺债,一般Relational database system is more efficient and flexible than object-oriented database system.
注:PL-Procedural Language
1.Oracle:resource hungry, non-flexible
2.MySQL:開源滋觉,高效,web-based齐邦,但oracle控制了MySQL椎侠,未來可能解除開源的屬性
3.PostgreSQL:課程使用
4.MongoDB:開源,NoSQL database program

Overview of the Database Areas

(8)數(shù)據(jù)庫開發(fā)流程
database application development:
1.analyse application requirements
2.develop a data model to meet these requirements
3.define operations (transactions) on this model
4.implement the data model as relational schema
5.implement transactions via SQL and PLs
6.construct a web interface to these transactions

分析需求-建立模型-定義操作-實現(xiàn)關(guān)系模型-實現(xiàn)操作-構(gòu)建交互界面

(9)數(shù)據(jù)庫語言
1.Request to DBMS(e.g. SQL):
data manipulation language, DML (data level);
data definition language, DDL (data structure constraints);
create and drop database, indexes, functions
2.Results/effects from DBMS requests
tuples or sets of tuples
changes to underlying data store
(10)Data Modeling
1.Data modeling的目標(biāo):describe information, relationships, constraints.
2.Data modelling is a design process, it converts requirements into a data model.
3.Data modeling類型:logical(抽象的概念設(shè)計措拇,比如Entity Relationship, Object Definition Language)我纪,physical(實用型,例如relational)丐吓。一般先design using abstract mode浅悉,再 map to physical model。

Data Modeling

4.design ideas:從簡單的信息入手券犁,先找到對象然后分析關(guān)聯(lián)术健,一般自然語言的名詞是數(shù)據(jù),而動詞是關(guān)聯(lián)粘衬,考慮所有可能的數(shù)據(jù)荞估。沒有完美的design,design時要多考慮正確性correctness稚新,完整性completeness勘伺,一致性consistency。

Example Gmail
最重要的是分析model的核心要素:information/data, relationships, constraints
Data Objects:
1.Users--username, password, security questions, backup email, phone, etc.
2.Emails--subject, body, from, to, cc, bcc, date-sent, status, etc.
3.Attachments--content-type, content, etc.
4.Sessions--user, expiry-time, location, etc.
5.Labels--name, color, etc.
Relationships:
Email-has-Label
Email-has-Attachment
Email-is a reply to-Email

3.ER Notation(以Textbook的Entity Relationship notation為準(zhǔn))

(1)ER Model
世界是由互相關(guān)聯(lián)的entities構(gòu)建起來的褂删。
ER的三個核心要素是:
attributes屬性--data item describing a property of interest
entity實體--collection of attributes describing object of interest
relationship關(guān)聯(lián)--association between entities (objects)
(2)ER Diagrams
ER diagrams are a graphical tool for data modelling.
It is consist of Data, Relationships, Attributes, Connections among them.

ER Diagram Example

圖中有3種一維幾何圖形(線段飞醉,加粗線段,箭頭)和3種二維幾何圖形(矩形屯阀,橢圓缅帘,菱形)
1.橢圓,代表attributes
2.矩形蹲盘,代表data/entities
3.菱形股毫,代表relationships
4.線段,代表participation中的”部分關(guān)系“
5.加粗線段召衔,代表participation中的”完全關(guān)系“
6.箭頭,代表cardinality中的”1“祭陷;非箭頭苍凛,代表cardinality中的”多“
7.加橫線的橢圓,代表key attributes兵志,一般是unique的
另外
1.entity/data通常用單數(shù)名詞表示一類概念
2.如果一個橢圓是可以依據(jù)其他橢圓計算得到的醇蝴,則用虛線橢圓表示,比如年齡可以用出生日期計算想罕。叫做derived attributes
3.如果一個橢圓包含多個橢圓悠栓,則用雙線橢圓表示霉涨,比如最喜歡的食物,其中包含多個attributes惭适。叫做multivalued attributes

(3)entity sets
一種是extensional view笙瑟,通過同類事物擴(kuò)展得到一個entity set;
另一種是intensional view癞志,通過抽象事物得到一個class的entity set往枷。
(4)attributs的keys
1.key/superkey指的是attributes中比較獨(dú)特可以代表object的一個/一組,從superkey中如果刪除一個attribute凄杯,往往還可以代表object错洁;
2.candidate key值得也是attributes中比較獨(dú)特可以代表object的一個/一組,但是如果從candidate key中刪除一個attribute戒突,不能再代表object屯碴;
3.primary key是由databse designer選擇的
注:ER圖中key用下劃線標(biāo)注。
(5)relational sets
Relationship被定義為an association among several entities膊存;
Relationship set被定義為collection of relationships of the same type窿锉;
Degree = # entities involved in relationship (in ER model, ≥ 2);
Cardinality = # associated entities on each side of relationship膝舅;
Participation = must every entity be in the relationship

relationship participation
relationship cardinality
Role names
Price and quantity are related to products in a particular shop
Weak Entity Sets

(6)Subclasses and Inheritance
1.A subclass of an entity set A is a set of entities:
? with all attributes of A, plus (usually) its own attributes
? that is involved in all of A's relationships, plus its own
2.Properties of subclasses:
? overlapping or disjoint
? total or partial

Subclasses and Inheritance
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嗡载,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子仍稀,更是在濱河造成了極大的恐慌洼滚,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件技潘,死亡現(xiàn)場離奇詭異遥巴,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)享幽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門铲掐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人值桩,你說我怎么就攤上這事摆霉。” “怎么了奔坟?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵携栋,是天一觀的道長。 經(jīng)常有香客問我咳秉,道長婉支,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任澜建,我火速辦了婚禮向挖,結(jié)果婚禮上蝌以,老公的妹妹穿的比我還像新娘。我一直安慰自己何之,他們只是感情好跟畅,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著帝美,像睡著了一般碍彭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上悼潭,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天庇忌,我揣著相機(jī)與錄音,去河邊找鬼舰褪。 笑死皆疹,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的占拍。 我是一名探鬼主播略就,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晃酒!你這毒婦竟也來了表牢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤贝次,失蹤者是張志新(化名)和其女友劉穎崔兴,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛔翅,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡敲茄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了山析。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片堰燎。...
    茶點(diǎn)故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖笋轨,靈堂內(nèi)的尸體忽然破棺而出秆剪,到底是詐尸還是另有隱情,我是刑警寧澤翩腐,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布鸟款,位于F島的核電站,受9級特大地震影響茂卦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜组哩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一等龙、第九天 我趴在偏房一處隱蔽的房頂上張望处渣。 院中可真熱鬧,春花似錦蛛砰、人聲如沸罐栈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荠诬。三九已至,卻和暖如春位仁,著一層夾襖步出監(jiān)牢的瞬間柑贞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工聂抢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钧嘶,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓琳疏,卻偏偏與公主長得像有决,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子空盼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 孤獨(dú)揽趾,人生在絕望的時候心生希望台汇。 孤獨(dú),是對他人的負(fù)責(zé)但骨,是對自己的救贖励七。 孤獨(dú),讓你心生安靜奔缠,靜待花開掠抬,一個人哭,...
    最愛睡覺的魚閱讀 169評論 0 0
  • 周末加班當(dāng)中校哎,最近很忙两波,五谷煩躁,難道是要生病了嗎闷哆。
    紅香白玉閱讀 170評論 0 0
  • 還是能想起來第一次我們是怎么遇見的腰奋,記性這么差的我,怎么就忘不了跟你在一起的每一幀畫面抱怔。 是因為南風(fēng)劣坊,把你吹來了,...
    395耶閱讀 380評論 0 0
  • 性別:男 年齡:24 想要解決問題: 畢業(yè)兩年依舊迷茫屈留,對未來特別焦慮局冰。不清楚自己可以做什么测蘑,想做什么。 畫中人物...
    三仙居士閱讀 523評論 5 2