大学入試「情報Ⅰ」

情報Ⅰ ポイント整理(14)

情報Ⅰ ポイント整理(14)

この連載では、現在高校で使用されている「情報Ⅰ」の教材をもとに、重要なポイントを整理し、5分程度で読める内容にまとめています。
ITの基礎知識として身につけておきたい内容を幅広く取り上げるとともに、大学入学共通テストで出題されやすいポイントについても分かりやすく解説します。テスト対策にもぜひご活用ください。


第14回目 データベース

データベースはデータを管理するためのツールです。
データ量が増え続けている現代社会では、データの収集、整形、整理、管理、活用が非常に重要になっています。コンビニで買った1本の缶コーヒーのデータから、何千何万の上場企業の株価のデータ、宇宙の衛星データまで、あらゆるところにデータが存在します。
データはどのように管理されているか、今回は管理方法の1つであるデータベースについて説明をいたします。

データベースとは

データベースとは、ある目的で一定の規則によって蓄積され、整理されたデータの集まりです。

蓄積と整理を行う目的はいろいろあります。後で確認するための記録かもしれません。プログラムで処理するための元データかもしれません。何らかの目的があります。

次に、重要な言葉は「一定の規則」です。
データが収集されて、決まった形で保存されないと、あとで使うときすごく不便になります。そのため、収集したデータを蓄積する前に、整形という作業があります。
例えば、不要なスペースを削除したり、文字をすべて全角文字に統一したり。使いやすいようにルールを決めて、データを整理します。

毎日、決まった形で大量のデータがデータベースに保存されています。

DBMSとSQL

DBMSは、データベースを作成、効率よく安全に運用、管理するためのシステムのことです。Database Management Systemの頭文字です。つまり、データベース管理システムです。

そして、システムの開発をした経験があれば、SQLを使ったことがあると思います。SQLはそのデータベース管理システムに指示を出すためのプログラミング言語です。

大学の共通テストでは、SQLまで出題することはないと思いますが、もし可能であれば、一度SQLのプログラムを書いてみたほうがいいと思います。

データベースの構造

まず、データベースはどのように構築されているかを見てみましょう。

開発でよく使われているデータベースはリレーショナルデータベースです。
リレーショナルは「関連性がある」という意味です。ここでの関連性は、データベースの中にある表と表の関連性を指しています。

データベースは1つまたは複数のテーブルで構成されます。Excelのシートと理解すれば、わかりやすいです。
1つのExcelファイルに1つまたは複数のシートがあります。それぞれのシートにデータが記録されています。データベースはこのExcelの構造にすごく似ています。
Excelファイル自体がデータベースのファイルです。Excelのシートはデータベースのテーブルで、そのテーブルの中に大量のデータが保存されています。

データベースにある複数のテーブルの間には関連性があります。
例えば、テーブルAの中に、顧客のIDと名前が記録されています。テーブルBの中に顧客のIDとその顧客の購入履歴が記録されています。この場合、テーブルAの顧客IDとテーブルBの顧客IDは同じものです。このような関連が複数のテーブルの間に存在します。
そのおかげでテーブルとテーブルがつながることになり、複雑なデータ管理ができるようになります。

さらに、テーブルは、行(レコード)と列(フィールド)で構成されます。行にはデータが記入されます。列は、データの種類を管理します。
同じくExcelを想像してください。A列は顧客ID、B列は顧客の氏名、C列は顧客のメールアドレスのように、各列にそれぞれのデータの種類が指定されています。
データベースの列はその役割を果たしています。

しかし、データが大量にあると、データの管理が複雑になり、同じデータが重複して存在する可能性が出てきます。そうなると、特定のデータの取得や修正が難しくなります。この問題を解決するために、主キーという概念が取り入れられています。

主キーとは、行を特定するための項目です。絶対に重複してはなりません。
例えば、上記の例で、顧客の氏名は同姓同名の可能性があります。メールアドレスも他人のものを使っている可能性があります。でも、顧客IDは一人1つだけです。重複してしまうと、このIDは一体誰なのか、わからなくなります。
この場合、顧客IDを主キーと設定します。万が一、登録するとき、同じIDを使った場合、登録不可のエラーが出ます。この主キーがあるからこそ、データの整合性が保たれます。

データを取得する方法

ここまで、データベースの構造を説明しました。次は、データを取得する方法を説明します。

データベースからデータを取得するとき、行で取得するか、列で取得するか、考え方が少し違います。

上記の例で説明すると、ある顧客のデータを取得したい場合、これは行で取得することになります。主キーであるその顧客のIDを指定し、その1行のデータをすべてもらうことができます。

すべての顧客の名前を取得したい場合、これは列で取得することになります。列であるフィールド名(氏名)を指定し、その氏名の1列のデータをすべてもらうことができます。

実際のプログラムでは、SQLという言語を使ってデータベースからデータを取得、追加、更新、削除の作業を行います。ネット上にもたくさんの学習サイトがあります。時間があれば、一度勉強をしてみてください。

NoSQL

最後に、リレーショナルデータベース以外のデータベースもいくつか紹介します。
NoSQLは、Not only SQLの略です。リレーショナルデータベース以外のデータベースの総称になります。

先ほど説明したように、リレーショナルデータベースでは、基本統一されている形のデータが登録、管理されます。しかし、現実の世界では、データの形が一意ではないことが多く存在します。複数の形式(画像データ、動画データ、文字データ)が同時に存在するデータもあります。そのようなデータに対し、より柔軟な構造を持つデータベースが必要です。NoSQLはそのようなデータベースを指します。

共通テストで登場する可能性があるNoSQLは、JSONやXML形式のデータぐらいだと思います。

XMLはExtensible Markup Languageのことです。HTMLの命令を書いたことがあれば、わかりやすいです。
XMLはHTMLの拡張言語です。HTMLは用意されているタグ(命令)を使いますが、XMLでは、自由にタグを作ることができます。そのため、データの種類設定がしやすくなります。以下の例は商品を管理するためのXMLデータの構造です。

<商品>
    <商品ID>...</商品ID>
    <商品名>...</商品名>
    <商品説明>...</商品説明>
</商品>

一方、JSONはJavaScript Object Notationの略です。JSONデータは、基本{ }と[ ]を使ってデータを管理します。階層が深くても構造がわかりやすい特徴があります。しかも、XMLよりデータ量が少ないので、高速通信に適すると思われます。現に、インターネット上のデータ通信にはJSONデータの形式がよく使われています。

商品: [
    { 商品ID:1, 商品名: A, 商品説明: ◯◯ },
    { 商品ID:2, 商品名: B, 商品説明: ▲▲ },
]

データベースは、情報社会においてデータを管理するために不可欠な手法です。データベースと聞くと、なんか難しいイメージがありますが、Excelの操作ができれば、データベースの構造も理解できます。

共通テストではデータの処理に関する問題が必ず出ます。データベースの仕組みを理解すれば、問題を解くときかなり楽になります。

次回は、このシリーズの最終回となります。プログラミングについてお話をさせていただきます。

img_avater_nakayama

中山 涼一

こどもICT教育支援センター センター長

2014年に関西初のこども向けプログラミング教室「未来学校プログラミング教室」を創設。800名以上の指導実績を誇るプログラミング教育のスペシャリスト。

プロフィール