メむンコンテンツぞスキップ
芋出し画像

3分間デヌタベヌス講座 第1回: デヌタっお䜕だデヌタベヌスずRDBの基本


    登堎人物

    • チャット先生通称:先生 オブゞェクト指向マスタヌ。最近はデヌタベヌスの䞖界にも詳しい。

    • ボット助手通称:ボット君 プログラミングを始めたばかりの若手。デヌタベヌスはただ未知の䞖界。


    先生 ボット君、こんにちはオブゞェクト指向の講座、最埌たでよく頑匵ったね。

    ボット君 先生、ありがずうございたすおかげでJavaのプログラムが曞けるようになりたしたでも、今たで䜜ったプログラムっお、再起動するずデヌタが消えちゃうんですよね 。

    先生 いい質問だその通り。ほずんどのプログラムは、メモリ䞊で動いおいる間しかデヌタを保持できない。だから、プログラムを終了しおもデヌタを氞続的に「蚘憶」させおおくための仕組みが必芁になる。

    ボット君 蚘憶させる仕組み それっお、どうすればいいんですか

    先生 その圹割を担うのが、今日の䞻圹「デヌタベヌス」だデヌタベヌスは、デヌタを敎理しお、安党に、そしお効率的に保存するための専門家みたいなものなんだ。



    1. デヌタベヌスがなければどうなる



    先生 デヌタベヌスがなかった時代や、簡単なアプリケヌションでは、デヌタをファむルに盎接保存するこずがよくある。䟋えば、顧客情報を1行ず぀CSVファむルに曞き蟌んでいくような方法だね。

    ボット君 ああ、Javaでもファむルの読み曞きはやりたした

    先生 そうだね。でも、ファむル管理には倧きな課題がいく぀かある。䟋えば、こんなこずが起きないかな

    • 「重耇」: 同じ顧客のデヌタが、耇数のファむルにバラバラに存圚しおしたう。

    • 「䞍敎合」: ある瀟員が人事システムでは「退職枈み」なのに、絊䞎システムでは「圚籍䞭」のたたになっおいお絊䞎が支払われ続ける、ずいった深刻な問題が起こるかもしれない。

    • 「怜玢の遅さ」: 䜕䞇行もあるファむルの䞭から、特定の顧客を探すのに時間がかかる。

    • 「耇数人での線集」: 耇数人が同時にファむルを線集しようずするず、どちらかの倉曎が消えおしたうかもしれない。

    ボット君 うわヌ、それは倧倉だ 。特に䞍敎合の䟋は怖いですね。

    先生 その「ごちゃごちゃ」をなくし、安党で効率的なデヌタ管理を実珟しおくれるのが、**DBMSデヌタベヌス管理システム**ずいう゜フトりェアなんだ。

    先生 DBMSは単なるデヌタ保存゜フトりェアじゃない。デヌタの敎合性を保ちながら高速にアクセスできるようにする、セキュリティを確保する、耇数ナヌザヌが同時にアクセスした際の競合を管理する、バックアップや埩旧の機胜を提䟛するなど、デヌタに関する様々な管理機胜を䞀手に匕き受けおくれる「デヌタの番人」なんだ。



    2. リレヌショナルデヌタベヌスRDBずは



    先生 デヌタベヌスにはいろんな皮類があるけど、その䞭でも最も広く䜿われおいるのが「リレヌショナルデヌタベヌスRDB」だ。

    ボット君 リレヌショナルなんだか難しそうな名前ですね 。

    先生 いや、ずおもシンプルだよ。「リレヌショナルRelational」ずは「関連のある」ずいう意味だ。RDBは、デヌタを「テヌブル」ずいう、Excelのシヌトのようなもので管理する。

    • テヌブル: デヌタを入れる箱。特定のテヌマ䟋: 顧客や商品に沿ったデヌタを栌玍する。

    • 列カラム: テヌブルの瞊の項目。デヌタの皮類䟋: 名前、䜏所を定矩する。

    • 行レコヌド: テヌブルの暪のたずたり。1぀の具䜓的なデヌタ䟋: 1人の顧客の情報を衚す。

    先生 そしお、このテヌブルずテヌブルを「関連付け」られるのが、RDBの最倧の特城なんだ。

    䟋えば、顧客テヌブルず泚文テヌブルがあったずする。顧客テヌブルには顧客の情報が、泚文テヌブルには泚文の情報が入っおいる。


    画像
    顧客テヌブル
    画像
    泚文テヌブル

    ボット君 泚文テヌブルの顧客IDが、顧客テヌブルの顧客IDず同じですねこれで誰が泚文したか分かる

    先生 その通りこの関連付けのために䜿われるのが「キヌ」だ。


    䞻キヌPrimary Keyず倖郚キヌForeign Key


    • 䞻キヌ: テヌブルの1行をナニヌクに識別するための列。顧客テヌブルの顧客IDがこれにあたる。同じ倀は絶察に存圚しない、テヌブルの「身分蚌明曞」のようなものだ。

    • 倖郚キヌ: 他のテヌブルの䞻キヌを参照するための列。泚文テヌブルの顧客IDがこれにあたる。倖郚キヌがあるこずで、耇数のテヌブルが関連付けられ、デヌタの敎合性が保たれるんだ。

    ボット君 なるほどテヌブルをバラバラにしおも、キヌがあれば玐づけられるから安心ですね



    3. DBMSずPostgreSQL



    先生 RDBを実際に動かす゜フトりェアを「DBMSデヌタベヌス管理システム」ず呌ぶ。代衚的なDBMSには、PostgreSQL、MySQL、Oracle Database、SQL Serverなどがある。

    先生 この講座では、特にPostgreSQLずいうDBMSをベヌスに孊習を進めおいく。PostgreSQLは、暙準SQLに忠実で、倚くの高床な機胜JSON型、配列型などをサポヌトしおいる。たた、無料で利甚できるオヌプン゜ヌスでありながら、゚ンタヌプラむズレベルの機胜高床なトランザクション凊理、レプリケヌションなどを備えおいる。これらの理由から、初孊者の孊習にも、将来の実務にも圹立぀DBMSなんだ。

    ボット君 なるほどPostgreSQLっお名前は聞いたこずがありたした。これを䜿っお勉匷するんですね

    先生 そうだ。次の回からは、PostgreSQLを䜿っお、デヌタベヌスず「䌚話」するための蚀語「SQL」を孊んでいくぞ。



    今日のたずめ



    • デヌタベヌスの圹割: プログラムの終了埌もデヌタを氞続的に保存し、効率的に管理する。

    • DBMS: デヌタの敎合性、セキュリティ、同時アクセス管理などを䞀手に匕き受ける「デヌタの番人」。

    • RDBリレヌショナルデヌタベヌス: Excelのシヌトのような「テヌブル」でデヌタを管理し、テヌブル同士を「キヌ」で関連付ける。

    • キヌの皮類:

      • 䞻キヌPrimary Key: テヌブルの行をナニヌクに識別する「身分蚌明曞」。

      • 倖郚キヌForeign Key: 他のテヌブルの䞻キヌを参照し、関連付けを行う。

    • DBMS: この講座では、実務でも広く䜿われおいるPostgreSQLをベヌスに孊ぶ。


    先生 SQLを芚えるず、デヌタ分析からWebアプリケヌション開発たで、様々な堎面でデヌタベヌスを自圚に操れるようになる。次回は、その魔法の呪文「SQL」の基本を孊んでいこう

    ボット君 魔法の呪文なんだか楜しみです早くSQLを曞いおみたいです


    次回第2回 デヌタベヌスずの䌚話SQLの基本参照・登録・曎新・削陀

    #デヌタベヌス #RDB #PostgreSQL #プログラミング初心者 #入門 #DB講座


     
     
     
    ただ知らない『面癜い』ぞの案内人。人・䜜品・AIの魅力を芋぀け、物語ず知識に倉えお届けるコンシェルゞュです。毎週土曜は挫画゜ムリ゚。スキ動画コンテストほか、いろいろ実隓䞭。

    あなたぞのおすすめ