蘇州JAVA中級數(shù)據(jù)庫培訓(xùn)?
來源:教育聯(lián)展網(wǎng) 編輯:佚名 發(fā)布時間:2018-04-08
蘇州JAVA中級數(shù)據(jù)庫培訓(xùn)
數(shù)據(jù)庫的三大范式
1 、**范式(1NF)
在任何一個關(guān)系數(shù)據(jù)庫中,**范式(1NF)是對關(guān)系模式的基本要求,不滿足**范式(1NF)的數(shù)據(jù)庫就不是關(guān)系數(shù)據(jù)庫。
所謂**范式(1NF)是指數(shù)據(jù)庫表的每一列都是不可分割的基本數(shù)據(jù)項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復(fù)的屬性。如果出現(xiàn)重復(fù)的屬性,就可能需要定義一個新的實體,新的實體由重復(fù)的屬性構(gòu)成,新實體與原實體之間為一對多關(guān)系。
在**范式(1NF)中表的每一行只包含一個實例的信息。簡而言之,**范式要求數(shù)據(jù)表中的每一列(每個字段)必須是不可拆分的**小單元。
2、 第二范式(2NF)
第二范式(2NF)是在**范式(1NF)的基礎(chǔ)上建立起來的,即滿足第二范式(2NF)必須先滿足**范式(1NF)。第二范式(2NF)要求數(shù)據(jù)庫表中的每個實例或行必須可以被惟一地區(qū)分。為實現(xiàn)區(qū)分通常需要為表加上一個列,以存儲各個實例的惟一標識。
第二范式(2NF)要求實體的屬性完全依賴于主關(guān)鍵字。所謂完全依賴是指不能存在僅依賴主關(guān)鍵字一部分的屬性,如果存在,那么這個屬性和主關(guān)鍵字的這一部分應(yīng)該分離出來形成一個新的實體,新實體與原實體之間是一對多的關(guān)系。為實現(xiàn)區(qū)分通常需要為表加上一個列,以存儲各個實例的惟一標識。簡而言之,第二范式要求表中的所有列,都必須依賴于主鍵,而不能有任何一列與主鍵沒有關(guān)系。
3 、第三范式(3NF)
滿足第三范式(3NF)必須先滿足第二范式(2NF)。第三范式(3NF)要求一個數(shù)據(jù)庫表中不包含其它表中已包含的非主關(guān)鍵字信息。簡而言之,第三范式要求表中的每一列只與主鍵直接相關(guān)而不是間接相關(guān),表中的每一列只能依賴于主鍵。
TCP和UDP的區(qū)別及其適用場景
首先說一下什么是TCP和UDP:
TCP是傳輸控制協(xié)議,提供的是面向連接、可靠的字節(jié)流服務(wù)。
UDP是用戶數(shù)據(jù)報協(xié)議,是一個簡單的面向數(shù)據(jù)報的運輸層協(xié)議。
TCP和UDP的區(qū)別:
TCP面向連接的運輸層協(xié)議,UDP無連接
TCP是可靠交付,UDP是盡**大努力交付
TCP面向字節(jié)流,UDP面向報文
TCP是點對點連接的,UDP一對一,一對多,多對多都可以
TCP適合用于網(wǎng)頁,郵件等,UDP適合用于視頻,語音廣播等
TCP和UDP的適用場景:
整個數(shù)據(jù)要準確無誤的傳遞給對方,這往往用于一些要求可靠的應(yīng)用,比如HTTP、HTTPS、FTP等傳輸文件的協(xié)議,POP、SMTP等郵件傳輸?shù)膮f(xié)議。
當對網(wǎng)絡(luò)通訊質(zhì)量要求不高的時候,要求網(wǎng)絡(luò)通訊速度能盡量的快,比如視頻、廣播等,這時就可以使用UDP。
說一下Spring的核心模塊
Spring Core【核心容器】:核心容器提供了Spring的基本功能。核心容器的核心功能是用IOC容器來管理類的依賴關(guān)系。
Spring AOP【面向切面】:Spring的AOP模塊提供了面向切面編程的支持。SpringAOP采用的是純Java實現(xiàn),采用基于代理的AOP實現(xiàn)方案,AOP代理由IOC容器負責生成、管理,依賴關(guān)系也一并由IOC容器管理。
Spring ORM【對象實體映射】:提供了與多個第三方持久層框架的良好整合。
Spring DAO【持久層模塊】: Spring進一步簡化DAO開發(fā)步驟,能以一致的方式使用數(shù)據(jù)庫訪問技術(shù),用統(tǒng)一的方式調(diào)用事務(wù)管理,避免具體的實現(xiàn)侵入業(yè)務(wù)邏輯層的代碼中。
Spring Context【應(yīng)用上下文】:它是一個配置文件,為Spring提供上下文信息,提供了框架式的對象訪問方法。
Spring Web【W(wǎng)eb模塊】:提供了基礎(chǔ)的針對Web開發(fā)的集成特性。
Spring MVC【MVC模塊】:提供了Web應(yīng)用的MVC實現(xiàn)。Spring的MVC框架并不是僅僅提供一種傳統(tǒng)的實現(xiàn),它提供了一種清晰的分離模型。
(轉(zhuǎn)發(fā))forward與(重定向)redirect的區(qū)別
forward是服務(wù)器請求資源,服務(wù)器直接訪問目標地址的URL,把那個URL的響應(yīng)內(nèi)容讀取過來,然后把這些內(nèi)容再發(fā)給瀏覽器。瀏覽器根本不知道服務(wù)器發(fā)送的內(nèi)容從哪里來的,所以它的地址欄還是原來的地址。
redirect是服務(wù)端根據(jù)邏輯,發(fā)送一個狀態(tài)碼,告訴瀏覽器重新去請求那個地址,所以地址欄顯示的是新的URL。
forward轉(zhuǎn)發(fā)頁面和轉(zhuǎn)發(fā)到的頁面可以共享request里面的數(shù)據(jù)。
redirect不能共享數(shù)據(jù)。
redirect不僅可以重定向到當前應(yīng)用程序的其他資源,還可以重定向到同一個站點上的其他應(yīng)用程序中的資源,甚至是使用絕對URL重定向到其他站點的資源。
forward只能在同一個Web應(yīng)用程序內(nèi)的資源之間轉(zhuǎn)發(fā)請求。
forward是服務(wù)器內(nèi)部的一種操作。
redirect是服務(wù)器通知客戶端,讓客戶端重新發(fā)起請求。
forward一般用于用戶登陸的時候根據(jù)角色轉(zhuǎn)發(fā)到相應(yīng)的模塊。
redirect一般用于用戶注銷登陸時返回主頁面和跳轉(zhuǎn)到其它的網(wǎng)站等。
forward效率高。
redirect效率低。
redis常用的五種數(shù)據(jù)類型
1.String(字符串)
String是簡單的 key-value 鍵值對,value 不僅可以是 String,也可以是數(shù)字。它是Redis**基本的數(shù)據(jù)類型,一個redis中字符串value**多可以是512M。
2.Hash(哈希)
Redis hash 是一個鍵值對集合,對應(yīng)Value內(nèi)部實際就是一個HashMap,Hash特別適合用于存儲對象。
3.List(列表)
Redis 列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素導(dǎo)列表的頭部(左邊)或者尾部(右邊)。
底層實現(xiàn)為一個雙向鏈表,即可以支持反向查找和遍歷,更方便操作,不過帶來了部分額外的內(nèi)存開銷,Redis內(nèi)部的很多實現(xiàn),包括發(fā)送緩沖隊列等也都是用的這個數(shù)據(jù)結(jié)構(gòu)。
4.Set(集合)
Redis的Set是String類型的無序集合,它的內(nèi)部實現(xiàn)是一個 value永遠為null的HashMap,實際就是**計算hash的方式來快速排重的,這也是set能提供判斷一個成員是否在集合內(nèi)的原因。
5.zset(有序集合)
Redis zset 和 set 一樣也是String類型元素的集合,且不允許重復(fù)的成員,不同的是每個元素都會關(guān)聯(lián)一個double類型的分數(shù),用來排序。
咨詢聯(lián)系方式:13861302024(楊老師)或者QQ:2589245390 還可以直接在線咨詢
更多JAVA課程推薦: