BaiTapLon_MongoDb.ppt

  • 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 !