未來三天將給大家把數據庫開發與ADO.NET基礎過一遍,然後就講呼叫中心那個項目。在數據庫開發和ADO.NET這方面,我們主要講解這些內容:
1、 從零基礎將數據開發,怎麼進行數據庫操作以及一些常見的SQL語句
2、 接着就講解ADO.NET,文件流的方式還有一種就是數據集的方式
在前面做那個“人力資源管理”那個小程序時我們自己寫的數據,我們看看自己的寫的數據庫的弊端:
麻煩、效率低下,如果數據量非常大的情況下,你查找數據也非常的慢,你得一個個記錄一個記錄的找。如果你想把你的查詢速度調高了,那麼對你數據結構和算法的要求非常高。
併發性差,如果我們兩個人同時修改數據庫內容,會出現什麼情況?各種情況,你想想兩個人同時將數據寫入這個文件。如果都是自己寫數據那就是太痛苦了。這樣就誕生了數據庫這個東西
數據庫概述
1、 用自定義文件格式保存數據的劣勢
2、 DBMS(DataBase Management System,數據管理系統)和數據庫。平時談到“數據庫”有兩種含義:
MS-SQL Server、Oracle等某種DBMS
存放一堆數據表的一個分類(Catalog)
3、 不同品牌的DBMS有自己的不同的特點:MySQL(速度非常快,但是不嚴謹,適用網站開發)、MS-SQL Server(結合.NET比較好)、DB2(大型數據安全性)、Oracle、Access(當文件來用)、Sybase-SQL Sever等。對開發人員來講、大同小異
4、 SQL<>SQL Server<>MS-SQLServer。最常見的錯誤
5、 除了Aceess、SQLSeverCE等文件類型的數據庫外,大部分數據庫需要數據庫服務器才能運行。學習、開發時是連接本機的數據庫,上線運行時是數據庫運行在單獨的服務器。
數據庫中的概念
數據庫數據爲什麼要分成一個個小格子呢?
Catalog(分類)(專業說法)(又叫數據庫DataBase、表空間TableSpace),不同類的數據應該放到不同的數據庫中
便於對各個Catalog進行個性化管理
避免命名衝突
安全性更高
Table(表),書放到書架上,碗放到櫥櫃中,不同類型的資料放到不同類型的格子中,將這種區域叫做表(Table)。不同的表根據放的數據不同進行空間優化,找起來也方便。
列(Column)、字段(Field)。
2011年10月入職,是產品開發部的,姓名馬小虎
王二小,技術支持部,入職是2010年7月
姓名 馬小虎 姓名 部門 入職時間
部門 開發部
入職時間 2008.06
其實就跟在前面學習C#一樣,你如果用字符串來存儲“2011年10月入職,是產品開發部的,姓名馬小虎”,查找具體信息比如姓名,入職時間就比較累了,我們如果建立一個類來查找就相對來說方便許多。現在很多的表就像Excel數據分的很清楚。
比如我要建立一個管財務的數據,比如我要給別人發工資、報銷,放到一個數據庫裏面。還有員工的管理,他的福利、入職、離職、社保、保險這些東西我也給他放到數據庫裏面。如果我把這些數據放到一個格子裏面就很麻煩了。財務的數據和人力資源的數據都有人的描述。財務數據,我這個員工的銀行賬號是多少,開戶行是什麼?人力資源的數據,他的工號是多少?這些不同類型的數據放到一起肯定亂掉了。你想想,如果財務數據和人力資源數據放到一個格子裏面?這樣就出現了一個問題:管人力資源的人能夠看到你財務的數據,我管財務的人也能看到你人力資源的數據,很不安全。一般財務數據在公司很保密的。所以呢,要將不同類型的數據放到不同數據庫中。比如我們以後要開發人力資源系統就建立一個人力資源系統的數據庫,開發一個OA系統就建立一個OA系統數據庫。
先建數據庫——建立表——分列
主鍵
避免重複
如果你公司有相同的名字的員工都叫,王小虎。那麼要查找它的入職信息就會重複的情況。這樣一般公司都會給你一個工號以用作區分。唯一標識一行數據,工號就是主鍵。
主鍵的兩種使用策略:業務主鍵和邏輯主鍵。
業務主鍵,對業務來說有意義的主鍵,比如用他身份證號做主鍵,用銀行賬號做主鍵或用他的工號做主鍵,你想想什麼什麼號都是有意義的啊?
邏輯主鍵:沒有業務意義的主鍵,比如我給每個員工分配一個流水號(計算機才能理解,完全給程序看,業務人員不會看的)
我現在主要推薦邏輯主鍵,因爲業務主鍵很難保證不重複。比如你開發一個系統用身份證來作主鍵(有重複的嫌疑),電話號碼(升位,之前加個8什麼)。
邏輯主鍵是不給用戶看到的
表間關聯、外鍵(ForeignKey)
商品名 |
價格 |
生產廠家 |
廠家地址 |
廠家電話 |
大大香瓜子 |
5.00 |
大大食品廠 |
恰恰大街300號 |
010-123456 |
大大開心果 |
15.00 |
大大食品廠 |
恰恰大街300號 |
010-123456 |
苦咖啡 |
2 |
伊利工廠 |
內蒙古伊利路1號 |
400400400 |
隨便 |
3 |
伊利工廠 |
內蒙古伊利路1號 |
400400400 |
冰工廠 |
1 |
伊利工廠 |
內蒙古伊利路1號 |
400400400 |
大家看上面一張表,我要記錄產品中所有的信息,我就用這麼一張Excel表把它記錄下來,我這樣記載信息的缺點就是數據重複,一旦我的廠家地址發生便更就要把所有廠家地址都改了,太痛苦了。如果放在數據庫裏面要更新的,很麻煩。所以,我們設計數據庫的時候千萬別這麼設計。我們應該建立兩張表,首先我給工廠編號,001和002兩個工廠。我要更新廠家信息的時候也很方便。大家看,這樣做有什麼缺點,麻煩。但是麻煩歸麻煩但是後面的數據庫都是這樣的
商品 |
價格 |
廠家編號 |
大大香瓜子 |
5.00 |
001 |
大大開心果 |
15.00 |
001 |
苦咖啡 |
2 |
002 |
隨便 |
3 |
002 |
冰工廠 |
1 |
002 |
上表中的,廠家編號就是外鍵(Foreign Key)
編號 |
名稱 |
地址 |
電話 |
001 |
大大食品廠 |
恰恰大街300號 |
010-123456 |
002 |
伊利工廠 |
內蒙古伊利路1號 |
400400400 |
上表中編號就是主鍵(Key)
原文鏈接:http://blog.csdn.net/youhaoxinqin/article/details/6854261