A. 程序員一般按照什麼模式訪問資料庫 A.外模式B.內模式
選A。
一、首先,我們看一下定義
1、外模式
外模式(子模式,用戶模式),對應於用戶級,對應於用戶所看到的資料庫的數據視圖,是與和具體的應用或者項目有關的邏輯表示。用戶可以通過外模式描述語言來描述、定於對應於用戶的數據記錄,也可以用資料庫操縱語言DML來對這些數據進行操作。外模式反映了資料庫系統的用戶觀。
2、內模式
又稱為存儲模式,對應物理級,他是資料庫中全體數據的內部表示或者底層描述,是資料庫最低一級的邏輯描述,他描述了數據在存儲介質上的存儲方式和物理結構,對應著實際存儲在外存儲介質上的資料庫。內模式用內模式描述語言來描述。內模式反映了資料庫系統的存儲觀。
二、解析
簡而言之,外模式用DML
,內模式用DDL,顯然程序員常寫的是前者(select等增刪查改語句)
B. 做程序員一定需要資料庫知識嗎
雖然不敢直接用「一定」這個詞,但通常說起來,不使用資料庫的項目太少了。只要你的項目要使用資料庫,作為程序員,你就需要資料庫知識。
當然,如果你只是負責整個項目中的「不和資料庫打交道」的那部分內容,你可以不用了解資料庫,比如你總是做前台頁面的美工。
但問題是,你確認以後永遠不和資料庫打交道嗎?你確認老闆永遠只需要你做美工那一部分嗎?
C. 程序員要學習資料庫嗎
一般是需要的,很多軟體的開發都涉及到資料庫,而且在開發過程中會涉及到不同的資料庫。
D. 在程序開發中,程序員通常使用mysql或oracle做資料庫,但是用excel做資料庫和其它資料庫有什麼區別呢
我來通俗的回答一下你的疑問吧.
EXCEL是電子表格,用來保存辦公數據,能保存的數據量也有限制.但與資料庫最大的區別其實不是存儲的數據量,而且數據的組織形式.
EXCEL的數據可以是由使用者隨意填寫保存,附加上各種格式.但mysql或oracle則有嚴格的語法要求和存儲規則,並且數據之間可以用嚴格的關系來限制.
之所以會有嚴格的語法要求,是為了方便各種程序保存和讀取.
而EXCEL則一個封閉的個體,同一張表(sheet)中的數據十分隨意,大多數情況下是由來人組織和訪問.
程序也可以訪問EXCEL的數據,但非常的不方便,正確讀取數據也很困難.
E. 程序員能用到資料庫嗎
能用到而且很多情況都要用到。資料庫操作是程序員必備素質'
F. 關於資料庫程序員,我應該具備哪些技能
1、先說素質:欲做事,先做人。做技術類的童鞋往往忽視做人,覺得學好習,搞好技術,就一定能獲得好的發展。其實未必,大部分程序員不是天才,也不是神通。要想讓別人教知識,分享技術,共事,素質是最關鍵的。高素質又高技能的人才才能獲得別人的敬仰與尊敬,也能獲得領導的賞識與提拔,更能獲得更高的回報和機會。
2、再說代碼:優秀的程序員必需能寫優秀的代碼,程序員就好比計算機界的作家,你寫的程序就如一篇篇優美的文章,計算機才能很好的閱讀並執行,別的程序員也能看懂你的代碼。最優勢的程序員寫的代碼就如詩歌一樣,引人入勝。
3、編程思想:java是面向對象編程,很多Java程序員,尤其是一些走培訓班的,不認真思考原理和思想,囫圇吞棗。結果學了技術,不懂思想,沒有掌握Java的精髓。
4、基礎扎實:有些Java工程師都做了好幾年了,結果一些最基本的知識還沒記牢,再編程的時候總用工具的提示,沒有工具就寫不出正確的代碼,這樣的人怎麼會成為高手呢,更不會被別人認為高手,就好比一個大作家連很多字都寫錯一樣。
5、編程速度:優秀的程序員編程必不慢,這除了基礎扎實、經驗豐富外,更需要清晰的編程思路和節奏,在寫程序前,一定做好規劃和設計,預想到各種情況,尋找最快速的演算法。
6、學習能力:優秀的程序員永遠不停的學習,其學習能力是最強的。他隨時隨地掌握最先進的技術,這都離不開快速的學習能力。
7、博學:掌握J2EE 、J2SE等,同時精通SQL語言及資料庫技術, 會使用MYSQL、SQLSERVER等資料庫,掌握WebLogic、Jboss、Spring、Struts、Hibernate等流行技術,掌握JS,掌握linux、軟體架構設計思想、搜索引擎優化、緩存系統設計、網站負載均衡、系統性能調優等實用技術。
G. 一個程序員在公司沒有資料庫許可權意味著什麼
資料庫,一般軟體開發中都會用到,關於它的許可權問題是這樣的:一個公司的一個軟體產品,其實在不同的研發上線的不同階段,資料庫是獨立的。這個很好理解,開發環境程序員可以隨便改。線上環境可不是誰都有許可權的。
不同的公司,這個資料庫管理的方式也是不一樣的,僅從我的經歷上來回答這個問題。如果更多疑問可以繼續探討。
H. Java程序員需要精通SQL資料庫嗎
理論上是這樣,軟體工程師更應該關注於程序設計而非對於某一技術的掌握,編寫和優化SQL應該交由資料庫專家負責,這是一種關注分離。x0dx0a但實際和理論相差甚遠,尤其在中國:x0dx0a很少公司會聘請資料庫專家進行開發的工作。x0dx0a而且相對的,資料庫專家並不了解具體軟體開發的技術,然而也沒有人要求資料庫專家要了解這些技術(是不是覺得對軟體工程師很不公平),如果想讓資料庫專家能夠工作起來,軟體工程師就必須從設計上把業務層與持久層的分離,目前很少工程師能夠做到這一點,基本上都是把SQL內嵌到業務層里了。x0dx0a所以如果公司沒有提供這樣理想的開發環境,還是有必要熟悉SQL的。
I. 做程序員一定需要資料庫知識嗎
需要,程序員在寫代碼的同時,也經常會操作資料庫中的數據,那麼就需要資料庫的SQL語言來支持,數據的增刪查改,特別是mis系統
J. 程序員面試寶典之Mysql資料庫Innodb引擎的4個隔離級別
題目:請闡述Mysql Innodb引擎的4個隔離級別
難度:三星
面試頻率:五星
這道題真的是一道資料庫的高頻題,資料庫題除了索引的原理之外就是這道題的面試頻率最高。
1.Read uncommitted(讀未提交):,最低的隔離級別,可以一個事務讀到其他事務沒有提交的數據,也稱臟讀,這個隔離級別很少人用
2.Read committed(讀已提交):相比於讀未提交,這個隔離級別只能讀到其他事物已經提交了的數據,這個隔離級別用得比較多。但是不是Mysql默認的隔離級別
3.Repeatable read(可重復讀): 在讀已提交隔離級別中,2次讀取同一個變數如果其他事務修改了它的值,會讀到的不一樣。而在這個隔離級別中,顧名思義,一個事務開始讀了。多次讀到的值可以保證是一樣的
4.Serializable 序列化 在這個隔離級別下,所有的事務都將串列操作,是隔離級別最高的也是效率最低的,很少人用
面試官追問:Innodb引擎默認隔離級別是哪個
答:可重復讀
面試官追問:可重復讀的實現原理
答:使用了MVCC多版本控制(類似樂觀鎖),Innodb引擎會給每一行數據加一個版本號信息,當一個事務修改一個數據時會增加它的版本號+1,當一個事務開始的時候會緩存下此時的版本號,後面讀取的時候只會讀取這個版本號的數據,因此別的事務提交了修改數據的版本號大於它,因此不會被讀到
面試官追問:事務的隔離級別如何設置:
答:在Mysql命令行下調用命令 set global.tx_isolation,但這樣Mysql重啟失效,修改my.cnf來永久設置
面試官追問:可重讀讀有什麼問題
答:會出現幻讀,幻讀是指事務讀取到一個值無法准確繼續後續操作。例如讀取一個值,沒有則插入,但是等插入的時候其他事務已經插入了,這就會導致插入失敗,解決辦法:sql語句顯示加鎖 :select xxxx for update,其他事務修改數據則會阻塞