<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      尚硅谷mysql安裝到mysql高級 數(shù)據(jù)庫概述

      第01章_數(shù)據(jù)庫概述

      1.1為什么要使用數(shù)據(jù)庫

      • 持久化(persistence):把數(shù)據(jù)庫保存到可掉電式存儲設備中以供以后使用。大多數(shù)情況下,特別是企業(yè)級應用,數(shù)據(jù)持久化意味著將內(nèi)存中的數(shù)據(jù)保存到硬盤上加以“固化”,而持久化的實現(xiàn)過程大多數(shù)通過各種關系數(shù)據(jù)庫來完成。
      • 持久化的主要作用是將內(nèi)存中的數(shù)據(jù)在關系型數(shù)據(jù)庫中,當然也可以存儲在磁盤文件,XML數(shù)據(jù)文件中。

      image

      在內(nèi)存中使用高電平,低電平表示1和0,一旦斷電,內(nèi)存中的數(shù)據(jù)就會丟失。

      生活中的例子:

      image

      QQ注冊,登陸后,清除掉軟件進程,可以直接登錄,不需要再次注冊。顯然,祖冊后,你的登錄賬號數(shù)據(jù)就被做了持久化。

      斷網(wǎng)后,你也可以對有的數(shù)據(jù)進行訪問(看到加載的聊天記錄),也說明對數(shù)據(jù)做了持久化。

      2.數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng)

      2.1數(shù)據(jù)庫的相關概念

      DB:數(shù)據(jù)庫(Database)

      ? 即存儲數(shù)據(jù)的”倉庫“,其本質(zhì)是一個文件系統(tǒng)。它保存了一系列有組織的數(shù)據(jù)。

      DBMS:數(shù)據(jù)庫管理系統(tǒng)(Database Management System)

      ? 是一種操縱和管理數(shù)據(jù)庫的大型軟件,用于建立、使用和維護數(shù)據(jù)庫,對數(shù)據(jù)庫進行統(tǒng)一管理和控制。用戶通過數(shù)據(jù)庫管理系統(tǒng)訪問數(shù)據(jù)庫中表格內(nèi)的數(shù)據(jù)。

      SQL:結構化查詢語言(Structure Query Language)

      ? 專門用來與數(shù)據(jù)庫通信的語言。

      2.2數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng)的關系

      數(shù)據(jù)庫管理系統(tǒng)(DBMS)可以管理多個數(shù)據(jù)庫,一般開發(fā)人員會針對每一個應用創(chuàng)建一個數(shù)據(jù)庫。為保存應用中實體的數(shù)據(jù),一i版會在數(shù)據(jù)庫中創(chuàng)建多個表,以保存程序中實體用戶的數(shù)據(jù)。

      數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫和表的關系如圖所示:

      image

      image

      2.3常見的數(shù)據(jù)庫管理系統(tǒng)排名(DMS)

      目前互聯(lián)網(wǎng)上常見的數(shù)據(jù)庫管理軟件有Oracle,MySQL,MS SQL Server,DB2,PostgreSQL,Access,Sybase,Informix這幾種。一下是20210年DB-Engines Ranking對各數(shù)據(jù)庫受歡迎程度進行調(diào)查后的統(tǒng)計結果:(查看數(shù)據(jù)庫最新排名:http://db-engines.com/en/ranking)

      image

      對應的走勢圖:(https://db-engines.com/en/ranking_trend)

      image

      2.4常見的數(shù)據(jù)庫介紹

      Oracle

      1979年,Oracle 2誕生,他是第一個商用的RDBMS(關系型數(shù)據(jù)庫管理體統(tǒng))。隨著Oracle軟件的名氣越來越大,公司也改名叫Oracle公司。

      2007年,總計85億美元收購BEA Systems。

      2009年,總計74億美元收購SUN,此前的2008年,SUN公司以10億美元收購MySQL。意味著Oracle同時擁有了MySQL的管理權,至此Oracle在數(shù)據(jù)庫領域中成為絕對的領導者。

      2013年,甲骨文超越IBM,成為即Microsoft后全球第二大軟件公司。

      如今Oracle的年收入達到了400億美元,足以證明商用(收費)數(shù)據(jù)庫軟件的價值。

      SQL Server

      SQL Servcer 是微軟開發(fā)的大型商業(yè)數(shù)據(jù)庫,誕生于1989年。C#、.net等語言常使用,與WinNT完全集成,也可以很好的與Microsoft BackOffic產(chǎn)品集成。

      DB2

      IBM公司的數(shù)據(jù)庫產(chǎn)品,收費的。常應用在銀行系統(tǒng)中。

      PostgreSQL

      PostgreSQL的穩(wěn)定性極強,最符合SQL標準,開房源碼,具備商業(yè)及DBMS質(zhì)量。PG對數(shù)據(jù)量打的文本以及SQL處理較快。

      SyBase

      已經(jīng)淡出歷史舞臺。提供了一個非常專業(yè)數(shù)據(jù)建模的工具PowerDesigner。

      SQLite

      嵌入式的小型數(shù)據(jù)庫,應用在手機端。零配置,SQLite3不用安裝,不用配置,不用啟動,關閉或者配置數(shù)據(jù)庫實例。當系統(tǒng)崩潰后不用做任何恢復操作,在下次使用數(shù)據(jù)庫的時候自動恢復。

      Informix

      IBM公司出品,取自Information和Unix的結合,它是第一個被移植到Linux上的商業(yè)數(shù)據(jù)庫產(chǎn)品。進運行與unix/linux平臺,命令行操作。性能較高支持集群適應于安全性要求極高的系統(tǒng),尤其是銀行,證券系統(tǒng)的應用。

      3.MySQL介紹

      image

      3.1概述

      • MySQL是一個開放源代碼的關系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB(創(chuàng)始人Michael Widenius)公司1995年開發(fā),迅速成為開源數(shù)據(jù)庫的NO.1.

      • 2008年被Sun收購(10億美金),2009年SUN公司被Oracle收購。Maria DB應運而生。(MySQL的常見這擔心MySQL有閉源的風險,因此常見了MySQL的認知項目Maria DB)

      • MySQL 6.x版本之后分為社區(qū)版商業(yè)版

      • MySQL是一種關聯(lián)數(shù)據(jù)庫管理系統(tǒng),將數(shù)據(jù)保存在不同表中的,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。

      • MySQL是開源的,所以你不需要支付額外的費用。

      • MySQL是可以定制的,采用GPL(GUN General Public License)協(xié)議,你可以修改源代碼開開發(fā)自己de MySQL系統(tǒng)。

      • MySQL支持大型的數(shù)據(jù)庫,可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。

      • MySQL支持大型數(shù)據(jù)庫,支持5000萬條記錄的數(shù)據(jù)倉庫,32位系統(tǒng)表文件最大支持4 G,64位系統(tǒng) 支持最大的表文件為8 TB。

      • MySQL使用標準的SQL數(shù)據(jù)語言形式

      • MySQL可以允許運行多個系統(tǒng)之上,并且支持多種語言。這些變成語言包括C,C++,Python,Perl,PHP,Ruby等。

      3.2MySQL發(fā)展史重大事件

      ? MySQL的歷史就是整個互聯(lián)網(wǎng)的發(fā)展史。互聯(lián)網(wǎng)業(yè)務從社交領域、電商領域、再到金融領域的發(fā)展,推動者應用對數(shù)據(jù)可的需求提升,對傳統(tǒng)的數(shù)據(jù)庫服務能力提出了挑戰(zhàn)。高并發(fā),高可用,易維護,易擴展的需求,促進了MySQL的長足發(fā)展。

      image

      image

      3.3關于MySQL 8.0

      MySQL從5.7版主直接跳躍發(fā)布了8.0版本,可見這是一個令人興奮的里程碑版本。MySQL 8版本在功能上做了顯著的改進與增強,開發(fā)者對MySQL的源代碼進行了重構,最突出的一點就是對MySQL Optimizer優(yōu)化器進行了改進重構,不僅在速度上得到了改善,還為用戶帶來了更好的性能和更棒的體驗。
      

      3.4Why choose MySQL?

      image

      為什么如此多的廠商要選用MySQL?大概總結的原因主要有以下幾點?

      1. 開放源代碼,使用成本低
      2. 性能能卓越,服務穩(wěn)定。
      3. 軟件體積小,使用簡單,并且易于維護。
      4. 歷史悠久,社區(qū)用戶非常活躍,遇到問題可以尋求幫助。
      5. 許多互聯(lián)網(wǎng)公司在用,經(jīng)過了時間的驗證。

      3.5Oracle VS MySQL

      ? Oracle更適合大型跨國企業(yè)的使用,因為他們對費用不敏感,但是對性能要求以及安全性有更高的要求。

      ? MySQL由于其體積小,速度快,總體擁有成本低,可處理上千萬條記錄的大型數(shù)據(jù)庫,尤其是開房源碼這一特點,是的互聯(lián)網(wǎng)公司,中小型網(wǎng)站選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(Facebook,Twitter,You Tube,阿里巴巴/螞蟻金服,去哪兒,美團外賣,騰訊)。

      4.RDBMS和非RDBMS


      ? 從排名中我們 能看出來,關系型數(shù)據(jù)庫絕對是DBMS的主流,其中使用最多的是DBMS分別是Oracle、MySQL和SQL Server。這些都是關系型數(shù)據(jù)庫(RDBMS)。

      4.1關系型數(shù)據(jù)庫(RDBMS)

      4.1.1實質(zhì)

      • 這種類型的數(shù)據(jù)是最古老的數(shù)據(jù)庫類型,關系型熟即可模型是把復雜的數(shù)據(jù)結構歸結為簡單的二元關系(即二維表格數(shù)據(jù)形式)。

      image

      • 關系性數(shù)據(jù)庫以行(row)和列(column)的形式存儲數(shù)據(jù),以便于用戶理解。這一塊系列的行和列被稱為表(table),一組表組成了一個庫(database)。

        例子:

      image

      • 表和表之間的數(shù)據(jù)記錄有關系(relationship)。實現(xiàn)世界中的各種實體以及實體之間的各種聯(lián)系均用關系模型來表示。關系型數(shù)據(jù)庫,就是建立在關系模型基礎上的數(shù)據(jù)庫。

      • SQL就是關系型數(shù)據(jù)庫的查詢語言。

      image

      4.1.2優(yōu)勢

      • 復雜查詢

        可以用SQL語句方便的在一個表以及多個表之間做非常復雜的數(shù)據(jù)查詢。

      • 事務支持

        使得對于安全性能很高得數(shù)據(jù)訪問要求得以實現(xiàn)。

      4.2非關系型數(shù)據(jù)庫(非RDBMS)

      4.2.1介紹

      ? 非關系型數(shù)據(jù)庫,可以看成傳統(tǒng)關系型數(shù)據(jù)庫的閹割版本,基于鍵值對存儲數(shù)據(jù),不需要經(jīng)過SQL層的解析,性能非常高。同時,通過減少不常用的功能,進一步提高性能。

      ? 目前基本上大部分主流的非關系型數(shù)據(jù)庫都是免費的。

      4.2.2有哪些非關系型數(shù)據(jù)庫

      ? 相比于SQL,NoSQL泛指非關系型數(shù)據(jù)庫,包括了榜單上的簡直數(shù)據(jù)庫、文檔型數(shù)據(jù)庫、搜索引擎和列存儲等,除此之外還包括圖形數(shù)據(jù)庫,也只有用NoSQL一詞才能將這些技術囊括進來。

      鍵值型數(shù)據(jù)庫

      ? 鍵值型數(shù)據(jù)庫通過Key-Value鍵值的方式來存儲數(shù)據(jù),其中Key和Value可以是簡單的對象,也可以是復雜的對象。Key作為唯一的標識符,有點事查找速度快,在這方面明顯優(yōu)于關系型數(shù)據(jù)庫,缺點是無法像關系型數(shù)據(jù)庫一樣使用條件過濾(比如WHERE),如果你不知道去哪里找數(shù)據(jù),就要遍歷所有的鍵,這就會消耗大量的計算。鍵值型數(shù)據(jù)庫典型的使用場景就是作為內(nèi)存緩存。Redis是最流行的鍵值型數(shù)據(jù)庫。

      image

      文檔型數(shù)據(jù)庫

      ? 此類數(shù)據(jù)庫可存放并獲取文檔,可以是XML,JSON等格式。在數(shù)據(jù)庫中文檔作為梳理信息的基本單位,一個文檔就相當于一條記錄。文檔數(shù)據(jù)庫所存放文檔,就相當于建筑數(shù)據(jù)所存放的‘’值‘。MangoDB是最流行的文檔型數(shù)據(jù)庫。此外。還有CouchDB等。

      搜索引擎數(shù)據(jù)庫

      雖然關系型數(shù)據(jù)庫采用了索引提升檢索效率,但是針對全文索引效率卻較低。搜索引擎數(shù)據(jù)庫是應用在搜索引擎領域的數(shù)存儲形式。由于搜索引擎會爬取大量的數(shù)據(jù),并以特定格式進行存儲,這樣在檢索的時候才能保證性能最優(yōu)。核心原理是”倒排索引“

      典型產(chǎn)品:Solr、Elasticsearch,、Splunk等

      列式數(shù)據(jù)庫

      ? 列示數(shù)據(jù)庫是相對于行式存儲的數(shù)據(jù)庫,Oracle、MySQL、SQL server等數(shù)據(jù)庫都是擦啟用的行式存儲(Row-based),而列式存儲是將數(shù)據(jù)按照列存儲到數(shù)據(jù)庫中,這樣做的好處就是可以大量降低系統(tǒng)的I/O,適合于分布式文件系統(tǒng),不足在于功能相對有限。典型產(chǎn)品:HBase等。

      image

      ? 數(shù)據(jù)庫常用的操作就是查詢操作,行式存儲要把每一行的數(shù)據(jù)都要加載到內(nèi)存中,加載了大量的冗余字段,加載到內(nèi)存中的字段越多,它占用的內(nèi)存就越多,占用的內(nèi)存越多,就意味著我們在加載的無用數(shù)據(jù)就越多,就意味著我們進行了比較多的I/O操作。

      圖形數(shù)據(jù)庫

      ? 圖形數(shù)據(jù)庫,利用了圖這種數(shù)據(jù)結構存儲了實體(對象)之間的關系。圖形數(shù)據(jù)庫最典型的例子就是社交網(wǎng)絡中人與人的關系,數(shù)據(jù)模型主要是以節(jié)點和邊(關系)來實現(xiàn),特點在于能高效地解決復雜的關系問題。

      ? 圖形數(shù)據(jù)庫,顧名思義,就是一種存儲圖形關系的數(shù)據(jù)庫。它利用了圖這種數(shù)據(jù)結構存儲了實體(對象)之間的關系。關系型數(shù)據(jù)庫用于存儲明確關系的數(shù)據(jù),但對于復雜關系的數(shù)據(jù)存儲卻有些力不從心。如社交網(wǎng)絡中任務之間的關系,如果用關系型數(shù)據(jù)庫則非常復雜,用圖形數(shù)據(jù)庫將非常簡單。典型產(chǎn)品:Neo4J、InfoGrid等。

      image

      4.2.3非關系型數(shù)據(jù)庫的演變

      ? 由于SQL一直稱霸DBMS,因此許多人在思考是否有一種數(shù)據(jù)庫技術能遠離SQL,于是NoSQL誕生了。但是隨著發(fā)展卻發(fā)現(xiàn)越來越離不開SQL。到目前為止NoSQL陣營中的DBMS都會有實現(xiàn)類似的SQL的功能。下面是“NoSQL”這個名詞在不同時期的詮釋,從這些釋義的變化中可以看出NoSQL功能的演變:

      1970 : NoSQL = We have no SQL

      1980 : NoSQL = Know SQL

      2000 : NoSQL = No SQL!

      2005 : NoSQL = Not only SQL

      2013 : NoSQL = No,SQL!

      ? NoSQL對SQL做出了很好的補充,比如實際開發(fā)中,很多業(yè)務需求,其實并不需要完整的關系型數(shù)據(jù)庫功能,非關系型數(shù)據(jù)庫的功能就足夠使用了。這種情況下,使用性能更高,成本更低的非關系型數(shù)據(jù)庫當然是更明智的選擇。比如:日志收集,排行榜,定時器等。

      4.3小結

      NoSQL的分類很多,即便如此,在DBMS排名中,還是SQL陣營的比重更大,影響力前5的DBMS中有4個是關系型數(shù)據(jù)庫,而排名前20的DBMS中也有12個是關系型數(shù)據(jù)庫。所以說,掌握SQL是非常有必要的。整套課程將圍繞SQL展開。

      5.關系型數(shù)據(jù)庫設計規(guī)則

      • 關系型數(shù)據(jù)庫的典型數(shù)據(jù)結構就是數(shù)據(jù)表,這些數(shù)據(jù)表的組成都是結構化的(Strucked)。
      • 將數(shù)據(jù)放到表中,表在放到庫中。
      • 一個數(shù)據(jù)庫中可以有多個表,每個表中都有一個名字,用來表示自己。表名具有唯一性。
      • 表具有一些特性,這些特性定義了數(shù)據(jù)在表中如何存儲,類四Java和Python中“類”的設計

      5.1表、記錄、字段

      • E-R(entity-relationship 實體聯(lián)系)模型中有三個主要的概念是:實體集、屬性、聯(lián)系集。
      • 一個實體集(class)對應于數(shù)據(jù)庫中的一個表(table),一個實體(instance)則對應于數(shù)據(jù)庫中的一行(row),也稱為一條記錄(record)。一個屬性(attribute)對應于數(shù)據(jù)庫表中的一列(column),也稱為一個字段(field)。

      image

      ORM思想(object Relational Mapping)
      數(shù)據(jù)庫中的一個表 <----> Java或Python中的一個類
      表中的一行數(shù)據(jù) <---->  類中的一個對象(或?qū)嶓w)
      表中的一個列 <---->  類中的一個字段、屬性(field)
      

      5.2表的關聯(lián)關系

      • 表與表之間的數(shù)據(jù)記錄有關系(relationship)。現(xiàn)實世界中的各種實體以及實體之間的各種聯(lián)系各種關系模型來表示。
      • 四種:一對一關聯(lián),一對多關聯(lián),多對多關聯(lián),自我引用。

      5.2.1一對一關聯(lián)(one-to-one)

      • 在實際的開房中應用不多,因為一對一可以創(chuàng)建成一張表。

      • 舉例:設計學生表:學號、姓名、手機號碼、班級、系別、身份賬號、家庭住址、籍貫、緊急聯(lián)系人......

        • 拆為兩個表:兩個表的記錄是一一對應關系
        • 基礎信息表(常用信息):學號、姓名、手機號碼、班級、系別
        • 檔案信息表(不常用信息):學號、身份證號碼、家庭住址,籍貫,緊急聯(lián)系人、...
      • 兩種建表原則

        • 外鍵唯一:主表的主鍵和從表的外鍵(唯一),形成外逐漸關系,外鍵唯一。
        • 外鍵是主鍵:主表的主鍵和從表的主鍵,形成主外鍵關系。

      image

      5.2.2一對多關系(one-to-many)

      • 常見實例場景:客戶表和訂單表,分類表和商品表,部門表和員工表。

      • 距離:

        • 員工表:編號、姓名、...、所屬部門
        • 部門表:編號、名稱、簡介
      • 一對多建表原則:在從表(多方)創(chuàng)建一個字段,字段作為外鍵只想主表(一方)的主鍵

      image

      image

      5.2.3多對多(many-to-many)

      ? 要表示多對多關系,必須創(chuàng)建第三個表,該表通常稱為聯(lián)接表,它將多對多關系劃分為兩個一對多關系。將這兩個表的主鍵都插入到第三個表中。

      image

      • 舉例1:學生-課程
        • 學生信息表:一行代表一個學生的信息(學號、姓名、手機號碼、班級、系別...)
        • 課程信息表:一行代表一個課程的信息(課程編號、授課老師、簡介...)
        • 選課信息表:一個學生可以選多門課,一門課可以被多個學生選擇
      學號        課程編號
      1			1001
      2			1001
      1			1002
      
      • 舉例2:產(chǎn)品-訂單

        “訂單”表和”產(chǎn)品“表有一種多對多的關系,這種關系是通過于“訂單明細”表戰(zhàn)力兩個一對多關系來定義的。一個訂單可以有多個產(chǎn)品,每個產(chǎn)品可以出現(xiàn)在多個訂單中。

        • 產(chǎn)品表:”產(chǎn)品“表中的每條記錄表示一個產(chǎn)品。
        • 訂單表:”訂單“表中的每條記錄表示一個訂單
        • 訂單明細表:每個產(chǎn)品可以與”訂單“表中的多條記錄對應,即出現(xiàn)多個訂單中。一個訂單可以與”產(chǎn)品“表中的多條記錄對應。即包含多個產(chǎn)品。

      image

      • 舉例三:用戶-角色

      • 多對多關系建表原則:需要創(chuàng)建第三張表,中間表中至少兩個字段,這兩個字段分別作為外鍵指向各自一方的主鍵。

      image

      5.3.4自我引用(Self reference)

      image

      posted @ 2022-03-10 15:50  輕狂書生han  閱讀(154)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲成人av在线资源| 日韩精品一区二区都可以| 真人无码作爱免费视频| 精品免费看国产一区二区| 久久人与动人物a级毛片| 国产99久久亚洲综合精品西瓜tv| yyyy在线在片| 夜夜偷天天爽夜夜爱| 野花香视频在线观看免费高清版| 久久人人97超碰精品| 亚洲人成色77777在线观看| 白白发布视频一区二区视频| 免费人成网站免费看视频| 性视频一区| 亚洲中国精品精华液| 国产精品久久久久无码av色戒| 精品久久人人妻人人做精品| 丰满人妻一区二区三区无码AV| 全部免费毛片在线播放| 九九热精品免费在线视频| 亚洲精品香蕉一区二区| 毛片大全真人在线| 亚洲精品第一页中文字幕| 免费看男女做好爽好硬视频| 九九成人免费视频| 久久精品国产亚洲夜色av网站 | 毛片一区二区在线看| 狠狠色狠狠色综合日日不卡| 无码伊人久久大杳蕉中文无码| 日本不卡的一区二区三区| 中文字幕人妻中文AV不卡专区| 亚洲日韩精品一区二区三区无码 | 国产精品久久久天天影视香蕉| 欧美大胆老熟妇乱子伦视频| 深夜精品免费在线观看| 在线国产精品中文字幕| 国内精品亚洲成av人片| 国产精品理论片在线观看| 午夜福利偷拍国语对白| 老熟女高潮一区二区三区| 亚洲欧美人成网站在线观看看|