Upload
loicuoi
View
170
Download
0
Embed Size (px)
DESCRIPTION
Bai tap lon Mongo DBBai tap lon ve NoSQL
Citation preview
I HC QUC GIA H NITRNG I HC CNG NGH
KHOA CNG NGH THNG TIN
H qun tr CSDL MongoDB
HVTH : Mai Ngc Lng Trn c Hun Trn Th Hin L Quang Hng Nguyn Vn Khuyn
GVHD: TS.Nguyn Ngc HaH Ni - 2012
1/32
Ni Dung
H qun tr CSDL MongoDB
Gii thiu chung v NoSQL
Tng quan v mongoDB
T chc lu tr d liu nh dng BSON
Hng dn ci t v s dng mongoDB
So snh tc thc thi cu lnh MongoDB
v MySQL
2/32
Gii thiu chung v NoSQL
H qun tr CSDL MongoDB
NoSQL: NoSQL c ngha l Non-Relational - khng rng buc, tuy
nhin hin nay ngi ta thng dch NoSQL l Not Only SQL - Khng ch SQL.
y l thut ng chung cho cc h CSDL khng s dng m hnh d liu quan h. NoSQL c bit nhn mnh n m hnh lu tr cp gi tr - kha v h thng lu tr phn tn.
Lch s pht trin Thut ng NoSQL c gii thiu ln u vo nm 1998
s dng lm tn gi chung cho cc h CSDL quan h ngun m nh khng s dng SQL truy vn.
3/32
Gii thiu chung v NoSQL
H qun tr CSDL MongoDB
Lch s pht trin (tip) Vo nm 2009, Eric Evans, nhn vin ca Rackspace gii
thiu li thut ng NoSQL khi Johan Oskarsson ca Last.fm mun t chc mt hi tho v c s d liu ngun m phn tn. Thut ng NoSQL nh du bc pht trin ca th h CSDL mi: phn tn (distributed) + khng rng buc (non-relational).
NoSQL storage c bit ph dng trong thi k Web 2.0 bng n, ni cc mng dch v d liu cng ng cho php ngi dng to hng t ni dung trn web. Do , d liu ln rt nhanh vt qua gii hn phn cng cn phi gii quyt bng bi ton phn tn.
4/32
Gii thiu chung v NoSQL
H qun tr CSDL MongoDB
Tt hn SQL Cc h CSDL quan h (RDBM) hin ti bc l nhng yu
km trong nhng tc v nh nh ch mc mt lng ln d liu, phn trang, hoc phn phi lung d liu media (phim, nh, nhc, ...). CSDL quan h c thit k cho nhng m hnh d liu khng qu ln trong khi cc dch v mng x hi li c mt lng d liu cc ln v cp nht lin tc do s lng ngi dng qu nhiu.
Th h CSDL mi - NoSQL - gim thiu ti a cc php tnh ton, tc v c-ghi lin quan kt hp vi x l theo l m bo c yu cu x l d liu ca cc dch v mng x hi. H CSDL ny c th lu tr, x l t lng rt nh n hng petabytes d liu vi kh nng chu ti, chu li cao nhng ch i hi v ti nguyn phn cng thp.
5/32
Gii thiu chung v NoSQL
H qun tr CSDL MongoDB
NoSQL thit k n gin, nh, gn hn so vi RDBMs. Ngoi memory cached, d liu nh, cc NoSQL dng ny c bit thch hp cho thit b cm ni m b nh v tc x l hn ch hn so vi my tnh thng thng.
Khi khi lng d liu cn lu tr v lng vo/ra cc ln, RDBM i hi kht khe v cao v phn cng, chi ph thit lp, vn hnh t th cc m hnh lu tr phn tn trong NoSQL tr nn vt tri.
6/32
Gii thiu chung v NoSQL
H qun tr CSDL MongoDB
Thit k c bit ti u v hiu sut, tc v c-ghi, t i hi v phn cng mnh v ng nht, d dng thm bt cc node khng nh hng ti ton h thng,
Cc m hnh d liu c th ca NoSQL cng cp API t nhin hn so vi vic dng RDBM.
Nhng rng buc v giy php s dng cng vi mt khon ph khng nh cng l u th. Chp nhn NoSQL ng ngha vi vic bn tham gia vo th gii ngun m ni m bn c kh nng ty bin mnh m cc sn phm, th vin theo ng mc ch ca mnh.
7/32
Gii thiu chung v NoSQL
H qun tr CSDL MongoDB
Tnh nng CSDL quan h NoSQLHiu sut Km hn
SQLRelational gia cc table
Cc ttB qua SQLB qua cc rng buc d liu
Kh nng m rng
Hn ch v lng H tr mt lng rt ln cc node
Hiu sut c-ghi
Km do thit k m bo s vo/ra lin tc ca d liu
Tt vi m hnh x l l v nhng ti u v c-ghi d liu.
Thay i s node trong h thng
Phi shutdown c h thng.Vic thay i s node phc tp.
Khng cn phi shutdown c h thng.Vic thay i s node n gin, khng nh hng n h thng.
Phn cng i hi cao v phn cng. i hi thp hn v gi tr v tnh ng nht ca phn cng
8/32
Gii thiu chung v NoSQL
H qun tr CSDL MongoDB
Mt s c im ca NoSQL Phi quan h (hay khng rng buc): relational - rng buc -
thut ng s dng n cc mi quan h gia cc bng trong c s d liu quan h (RDBM) s dng m hnh gm 2 loi kha: kha chnh v kha ph (primary key + foreign key) rng buc d liu nhm th hin tnh nht qun d liu t cc bng khc nhau. Non-relational l khi nim khng s dng cc rng buc d liu cho nht qun d liu.
Lu tr phn tn: m hnh lu tr phn tn cc tp tin hoc d liu ra nhiu my khc nhau trong mng LAN hoc Internet di s kim sot ca phn mm.
9/32
Gii thiu chung v NoSQL
H qun tr CSDL MongoDB
Mt s c im ca NoSQL (Tip) Nht qun cui: tnh nht qun ca d liu khng cn phi
m bo ngay tc khc sau mi php ghi. Mt h thng phn tn chp nhn nhng nh hng theo phng thc lan truyn v sau mt khong thi gian (khng phi ngay tc khc), thay i s i n mi im trong h thng cui cng d liu trn h thng s tr li trng thi nht qun.
- Trin khai n gin, d nng cp v m rng. - M hnh d liu v truy vn linh hot.
10/32
Gii thiu chung v NoSQL
H qun tr CSDL MongoDB
ng dng NoSQL Nhiu ngi chp nhn NoSQL l do vn
chi ph hoc thc h, ni khng vi ngun ng. Vic cng ng ngha vi vic chp nhn s non nt v nhng h tr km hn. Nu bn vn thch thit k m hnh d liu dng bng, CSDL SQL s l la chn.
NoSQL c bit thch hp cho cc ng dng cc ln (dch v tm kim, mng x hi ,) v nh. Vi nhng ng dng va v ln th RDBMs vn thch hp hn.
11/32
Gii thiu chung v NoSQL
H qun tr CSDL MongoDB
ng dng NoSQL (tip) Thit k NoSQL chp nhn tnh nht qun yu v c th
khng dng n transaction. Vi nhng ng dng i hi s cht ch ca d liu, cn transaction m bo tnh ton vn, c s d liu truyn thng l la chn thch hp hn. NoSQL thch hp cho cc m hnh lu tr d liu c tnh c th nh object oriented, document oriented, xml database,
Thng chng ta s dng rt hn ch nhng kh nng m cc CSDL RDBM cung cp nhng vn phi tr ph cho n. Nu khng cn n cc tnh nng cao cp, khng cn cc chc nng ca SQL hoc rt ght vit cc cu lnh SQL th hy ngh n NoSQL.
12/32
Tng quan v mongoDB
H qun tr CSDL MongoDB
Lch s ra i MongoDB Pht trin MongoDB bt u ti 10gen(a software
company) trong nm 2007, khi cng ty xy dng mt Nn tng nh mt dch v tng t nh Google App Engine .
Trong nm 2009, MongoDB tr thnh m ngun m nh l mt sn phm c lp. vi giy php AGPL .
Trong thng 3 nm 2011, t phin bn 1.4, MongoDB hon thin v sn sng cho cc ng dng.
Phin bn n nh mi nht (thng 3 nm 2012) l 2.0.3, pht hnh vo thng 2 nm 2012.
13/32
Tng quan v mongoDB
H qun tr CSDL MongoDB
Lch s ra i MongoDB (tip) Pht trin MongoDB bt u ti 10gen(a
software company) trong nm 2007, khi cng ty xy dng mt Nn tng nh mt dch v tng t nh Google App Engine .
Trong nm 2009, MongoDB tr thnh m ngun m nh l mt sn phm c lp. vi giy php AGPL .
Trong thng 3 nm 2011, t phin bn 1.4, MongoDB hon thin v sn sng cho cc ng dng.
Phin bn n nh mi nht (thng 3 nm 2012) l 2.0.3, pht hnh vo thng 2 nm 2012.
14/32
Tng quan v mongoDB
H qun tr CSDL MongoDB
Cc tp tin thc thi ca mongoDB mongod: nhn s l ca mongoDB mongos: s l cc vn scale v perfoment mongo: database shell Import Export Tools
Mongoimport Mongoexport Mongodump Mongorestore Bsondump
Mongofiles: h tr s l files ln Mongostat: cho php xem cc trng thi hin ti ca
mongoDB
15/32
Tng quan v mongoDB
H qun tr CSDL MongoDB
Cc khi nim v Data v cu trc t chc d liu trong mongoDB
16/32
Tng quan v mongoDB
H qun tr CSDL MongoDB
Cc biu thc truy vn trong MongoDB Cu lnh to Conllection(to bng)
db.createCollection ( "mycoll" ) Thm mt bn ghi(insert) db.users.insert ({a: 3, b: 5}) Select ly ra 1 s cc trng db.users.find ({}, {a: 1, b: 1}) Select * db.users.find () Select c iu kin db.users.find ({age: 33})
17/32
Tng quan v mongoDB
H qun tr CSDL MongoDB
Cc biu thc truy vn trong MongoDB(tip) Select c sp xp
db.users.find({age:33}).sort({name:1}) Select vi ton t so snh
db.users.find ({name:{$gt:33}}) -> so snh ln hn db.users.find ({name:{$ne:33}}) -> so snh khng bng db.users.find ({name:Joe /}) -> so snh gn ng %
Joe% db.users.find({name:/^Joe/}) -> so snh gn ng
Joe% db.users.find({'age':{$gt:33,$lte:40}}) so snh > v
Tng quan v mongoDB
H qun tr CSDL MongoDB
Cc biu thc truy vn trong MongoDB(tip) Select gii hn s lng bn ghi ly ra
db.users.findOne () -> limit 1 Select cc bn ghi khng trng lp
db.users.distinct('last_name') m s bn ghi
db.users.count() -> m tt c cc bn ghi db.users.find({age: {'$gt': 30}}).count() -> ch m bn ghi no
c age>30 To ch mc(Index)
db.users.ensureIndex({name:1}) -> to ch mc cho 1 trng db.users.ensureIndex({name:1,ts:-1}) -> to ch mc 2 trung
19/32
Tng quan v mongoDB
H qun tr CSDL MongoDB
Cc biu thc truy vn trong MongoDB(tip) Lnh Update
db.users.update({b:'q'}, {$set:{a:1}}, false, true) db.users.update({b:'q'}, {$inc:{a:2}}, false, true)
Lnh Delete db.users.remove({z:'abc'});
20/32
T chc lu tr d liu BSON
H qun tr CSDL MongoDB
Gii thiu v BSONBSON vit tt ca Binary JSON l mt cu trc
nh phn c m ha ca cc ti liu ging nh JSON. Ging nh JSON, BSON h tr nhng cc ti liu v mng trong cc ti liu v cc mng khc. BSON cng c phn m rng cc loi d liu m khng phi l mt phn ca JSON.
V d: BSON c kiu ngy v BinData.
21/32
T chc lu tr d liu BSON
H qun tr CSDL MongoDB
Cc kiu d liu c bn trong BSON Byte 1 byte (8-bits)
Int32 4 bytes (32-bit signed integer)
Int64 8 bytes (64-bit signed integer)
Double 8 bytes (64-bit IEEE 754 floating point)
22/32
T chc lu tr d liu BSON
H qun tr CSDL MongoDB
C Quy nh c th cc kiu d liu BSON Trong BSON biu din d liu dng ng ngha.
V d \x01 l biu din cho byte 0000 0001 Du * trong biu din kiu ca JSON c ngha l biu
thc c lp li n ln(n>=0) . V d:
\x01*2 -> \01\01\x01* th trong trng hp ny biu thc ny c th
ko tn ti hoc ko gii hn
23/32
T chc lu tr d liu BSON
H qun tr CSDL MongoDB
V d v biu din d liu ca BSON{"hello": "world}"\x16\x00\x00\x00\x02hello\x00
\x06\x00\x00\x00world\x00\x00
{"BSON": ["awesome", 5.05,1986]} "1\x00\x00\x00\x04BSON\x00&\x00
\x00\x00\x020\x00\x08\x00\x00 \x00awesome\x00\x011\x00333333 \x14@\x102\x00\xc2\x07\x00\x00 \x00\x00"
24/32
T chc lu tr d liu BSON
H qun tr CSDL MongoDB
Cc c im ca BSON Dung lng lu tr nh: Gi trn khng
khng gian n mc ti thiu l quan trng i vi bt k nh dng biu din d liu, c bit l khi c s dng qua mng.
D thit k: kiu d liu dng JSON c th son tho trn bt k mt text editor no
Hiu qu: M ha d liu n BSON v gii m t BSON c th c thc hin rt nhanh chng trong hu ht cc ngn ng do vic s dng cc loi d liu ca C
25/32
Hng dn ci t MongoDB
H qun tr CSDL MongoDB
Download MongoDB
32bit MongoDB direct download
64bit direct download
Gii nn vo th mc D:/MongoDb
Thm th mc:
thm th mc data (D:/MongoDB/data)
thm th mc logs(D:/MongoDB/logs)26/32
Hng dn ci t MongoDB
H qun tr CSDL MongoDB
Run Window Command processor bng ti khon administrator.
27/32
Hng dn ci t MongoDB
H qun tr CSDL MongoDB
Ci t MongoDB mongod --logpath D:\MongoDB\logs\logfilename.log --
logappend --dbpath D:\MongoDB\data install
Nu trong tn file c k t c bit hoc du cch:mongod --logpath D:\MongoDB\logs\logfilename.log --logappend --dbpath D:\MongoDB\data install
28/32
Hng dn ci t MongoDB
H qun tr CSDL MongoDB
Ci t MongoDB mongod --logpath D:\MongoDB\logs\logfilename.log --
logappend --dbpath D:\MongoDB\data install Nu trong tn file c k t c bit hoc du cch:
mongod --logpath D:\MongoDB\logs\logfilename.log --logappend --dbpath D:\MongoDB\data install
ng k services mongod --logpath d:\mongo\logs\logfilename.log --logappend
--dbpath d:\mongo\data --service Restart my
29/32
Hng dn ci t MongoDB
H qun tr CSDL MongoDB
Qun l service MongoDB
30/32
So snh tc thc thi cu lnh MongoDB v MySQL
H qun tr CSDL MongoDB 31/32
H qun tr CSDL MongoDB
XIN CHN THNH CM N !
32/32
Ni DungGii thiu chung v NoSQLGii thiu chung v NoSQLGii thiu chung v NoSQLGii thiu chung v NoSQLGii thiu chung v NoSQLGii thiu chung v NoSQLGii thiu chung v NoSQLGii thiu chung v NoSQLGii thiu chung v NoSQLGii thiu chung v NoSQLTng quan v mongoDBTng quan v mongoDBTng quan v mongoDBTng quan v mongoDBTng quan v mongoDBTng quan v mongoDBTng quan v mongoDBTng quan v mongoDBT chc lu tr d liu BSONT chc lu tr d liu BSONT chc lu tr d liu BSONT chc lu tr d liu BSONT chc lu tr d liu BSONHng dn ci t MongoDBHng dn ci t MongoDBHng dn ci t MongoDBHng dn ci t MongoDBHng dn ci t MongoDBSo snh tc thc thi cu lnh MongoDB v MySQLXIN CHN THNH CM N !