資料庫基礎
1. 什麼是資料庫?
資料庫:database,儲存資料的倉庫
資料庫:高效的儲存和處理資料的介質(介質主要是兩種:磁碟和記憶體)
2. 資料庫分類?
資料庫根據儲存介質的不同,進行了分類:關係型資料庫(sql)和非關係型資料庫(nosql :not only sql)
3. 不同的資料庫的產品有哪些?
關係型資料庫:
①大型:oracle db2
②中型: sql-server,mysql等
③小型:access等
非關係型資料庫:
memcached, mongodb, redis(同步到磁碟)
4. 兩類資料庫的區別?
關係型資料庫: 安全(儲存磁碟基本不可能丟失);容易理解,比較浪費空間(二維表)
非關係型資料庫: 基於記憶體,效率高,不安全(斷電內容丟失)
關係型資料庫
1.什麼是關係型資料庫?
關係型資料庫: 是一種建立在關係模型(數學模型)上的資料庫.
關係模型: 一種建立在關係上的模型.關係模型包含三個方面:
2. 資料結構:資料儲存的問題.二維表(有行和列)
3. 操作指令集合:所有sql語句
4. 完整性約束: 表內資料約束(欄位與字段),表與表之間資料約束(外來鍵)
關係型資料庫的設計?
關係型資料庫:從需要儲存的資料需求中分析,如果是一類資料(實體)應該設計成一種二維表: 表是由表頭(欄位名:用來規定資料的名字)和資料部分組成(實際儲存的資料單元)
二維表:行和列
表頭欄位名1
欄位名2
資料單元
資料1資料2
以實際案例來進行處理:分析乙個教學系統,講師負責教學,教學生,在教師教學生.
① 找出系統中所存在的實體:講師表,學生表,班級表
② 找出實體中應該存在的資料資訊
講師:姓名,性別,年齡,工資
學生:姓名,性別,學號,學科
班級: 班級名稱,教室編號
關係型資料庫:維護實體內部,實體與實體之間的聯絡,
實體內部聯絡:每個學生都有姓名,性別,學號,學科資訊
姓名性別
學號學科
年齡陳明
男php
陳晶晶女
php王偉ui
第二行所有字段,都是描述陳明這個學生(內部聯絡),第二列只能放性別(內部約束)
關係型資料庫的特點之一: 如果表中對應的某個字段沒有值(資料),但是系統依然要分配空間;關係型資料庫比較浪費空間
實體與實體之間的聯絡:每個學生肯定屬於某個班級,每個班級一定有多個學生(一對多)
學生表:
姓名性別
學號學科
年齡陳明
男php
陳晶晶女
php王偉ui
班級表:
班級名稱
教師編號
php10
b205
ui103
a203
解決方案:在學生表中新增乙個八戒欄位來指向班級(必須能夠唯一的找到乙個班級資訊)
姓名性別
學號學科
年齡班級陳明男
phpphp10
陳晶晶女
phpphp10
王偉ui
ui103
學生實體與班級實體的關聯關係,實體與實體之間的關係
關鍵字說明
資料庫(db):database
資料庫系統:dbs(database system):是一種虛擬系統,將多種內容關聯起來的稱呼
dbs = dbms+db
dbns:databasemanagement system,資料庫管理系統,專門管理資料庫
dba:databaseadministrator,資料庫管理員
row/recore(行/記錄):本質是乙個東西:都是指表中的一行(一行記錄):行是從結構出發,
記錄是從資料角度出發
column/field(列/字段):本質是乙個東西
重新粗推了一下Master Theorem
主定理一般形式是t n a t n b f n a 1,b 1。遞迴項可以理解為乙個高度為 logbn 的 a 叉樹,這樣 total operation就是 a logbn 1,右邊的f n 假設為 nc 那麼我們對比一下這兩項就會發現 t n 的複雜度主要取決於 logba 與 c 的大小。所以...
寫一下萊布尼茨級數
背景 看 邏輯的引擎 這本書的時候,看到天才萊布尼茨的發現,本來是對電腦計算速度好奇的,試了下運算時間蠻長,就是了100,效果跟書本不一樣。記錄一下。萊布尼茨級數 4 1 1 3 1 5 1 7 1 9 越趨近極限,就越接近 4的值。package com.hmc.testuseraccounts ...
整理一下HIVE概念
存資料的資料庫 hive不同於其他資料庫的地方就在於建立表這個地方。hive建立表並不是有固定的表的格式,而是它僅僅記錄了匯入的資料的格式,例如行分隔符 列分隔符等,它將這些存於元資料庫裡,這樣就建立了一張表,換而言之,hive支援不同格式的資料匯入,你只要告訴hive你的資料是什麼格式的,hive...