層スキーマの考え方を修得し,応用する。・データベース管理システムの目的,機能を修得し,応用する。System)の意義,目的,考え方を理解する。代表的なデータベースの種類,データの表現構造,レコード間の関連付けの方法など種類ごとの特徴,与えられた要件に応じて最適なデータベースを選択し,設計に活用することを理解する。層を区別することでデータの独立性を高めていること,データモデルの種類,特徴,利点,各スキーマの表現方法,表現できる内容,特徴を理解する。用語例:概念データモデル,論理データモデル(外部モデル),関係モデル,階層モデル,ネットワークモデル,物理データモデル(内部モデル),概念スキーマ,外部スキーマ(副スキーマ),内部スキーマ(記憶スキーマ)3.関係データモデル関係データモデルにおいて,データがどのように表されるのか,表の構成,考え方,複数の表の関係付けを理解する。与えられた要件に応じて,規定の表記法を使用してデータモデルを表現することを理解する。マネジメント機能をデータベース開発や保守に利用することを理解する。複数の応用プログラムが一つのデータベースに同時にアクセスするときに必要な制御方法を理解する。3.障害回復データベースに障害が発生した場合の障害回復機能と回復手順を理解する。4.データセキュリティデータを共有する際に重要となるセキュリティ確保のための方法を理解する。代表的なデータベースの種類,データの表現構造,レコード間の関連付けの方法など種類ごとの特徴,与えられた要件に応じて最適なデータベースを選択し,設計に活用することを理解する。層を区別することでデータの独立性を高めていること,データモデルの種類,特徴,利点,各スキーマの表現方法,表現できる内容,特徴を理解する。関係データモデルにおいて,データがどのように表されるのか,表の構成,考え方,複数の表の関係付けを理解する。与えられた要件に応じて,規定の表記法を使用してデータモデルを表現することを理解する。図データベースの種類と特徴データベースデータベースとは、大量のデータをコンピュータで処理できるようにまとめて蓄積したものです。データは処理しやすい形に整理され、格納されています。データベースには、次のような機能があります。アプリケーションから独立している・・・色々なプログラムから参照できる。データが統合されて一元的に管理される・・・データにムダ(冗長性)がない。排他制御の機能がある・・・複数の利用者が共有利用しても矛盾が起きない。障害時の復旧機能がある・・・データの信頼性が高い。Database:HDB)は、外部スキーマとしては階層的な分類体系とみなすデータベースです。「構造型データベース」の一種とされています。概念スキーマとしては、データ群を木構造で表します。順編成ファイルでは扱いにくかった分類体系を扱うことが容易です。アルゴリズムが基本的には簡潔で、かつ豊富に蓄積されているのが特徴です。複数の分類の間の共通部分をまとめにくいという性質があります。一つのデータを探す手順は1通りしか存在しません。Database:NDB)は、外部スキーマとして、階層的な分類体系において、異なる分類の間の共通の下位の分類や項目を持てるようにしたデータベースです。「構造型データベース」の一種とされています。概念スキーマとしては、典型的には格子状のネットワーク構造になります。複数の分類の間の共通部分をまとめることが出来るのが特徴です。自由度は高いが設計が複雑で利用効率が低くなりやすい面があります。Database:RDB)は、外部スキーマとしては、任意の関係を持つデータ群のデータベースです。概念スキーマとしては行×列で構成される表(テーブル)が、外部キーによって相互連結されるという形で管理されます。処理は関係演算を基盤にすることによって、簡潔に指定されます。階層やネットワークなどの構造に制約されずに、様々な観点で扱うことが出来るため、利用者の視点で設計でき、構造が理解しやすいのが特徴です。内部スキーマの処理は効率的とはいえませんが、コンピュータの性能が向上したので、関係データベースが主流になっています。テーブルには、データがレコード単位に格納されます。各レコードは、いくつかのフィールドから構成されています。下図の例では、商品名や仕入先を関係演算用のキーにして、別の観点の表をユーザへ見せることができます。Database:OODB)は、「データとそれらの処理方法を一つのオブジェクト」として捉えるデータベースです。オブジェクト指向データベースは、テキストだけではなく、処理が複雑な画像、音声、動画などのマルチメディアの管理に向いています。最近では、オブジェクト関係データベースというものも出てきています。データベースのモデルデータモデルとはデータモデルとは、データベースの設計の各段階における設計の結果のことで、データの構造を表現したものです。概念データモデル:データベースの概要を設計したもの論理データモデル:概念データモデルを詳細化したもの物理データモデル:データモデルの実際の構造を設計したものスキーマスキーマとは、データベースの定義情報であり、データの枠組みに当たります。データの項目、設計上の構造、見かけ上の構造、実際の物理的な構造などの情報群を指します。3層スキーマ3層スキーマは、データベースの様々なデータモデルを、3つの階層に分類したもので、以下のように分類されます。外部スキーマ(副スキーマ)利用者にとってのデータ群の構造。ユーザの見方で設計する。概念スキーマの一部+利用者側の定義情報。概念スキーマ(スキーマ)設計上のデータ群の構造。データベース設計者の見方で設計したもの。内部スキーマ(記憶スキーマ)OSやハードウェア、DBMSなど、コンピュータ側から見たデータ群の構造。実際にデータを格納するための、物理的な構造情報の定義。3層スキーマの利点3層スキーマを採用することで、以下のような利点があります。データベースの定義の変更を局所化出来る。異なるDBMSや異なるOS上の同一DBMSへの移行が容易になる。階層的に捉えることで、ユーザに取っての外部スキーマを変えずに、異なるコンピュータに移行する際の手間を最小限にすることが出来る。マネジメント機能をデータベース開発や保守に利用することを理解する。複数の応用プログラムが一つのデータベースに同時にアクセスするときに必要な制御方法を理解する。データベースに障害が発生した場合の障害回復機能と回復手順を理解する。データを共有する際に重要となるセキュリティ確保のための方法を理解する。System)といいます。DBMSには、データベースの定義機能や、データの検索、更新、削除などの操作、運用管理を行う機能があり、データベースを参照するアプリケーションソフトとデータベースの間を取り持ちます。アプリケーションソフトは、必要なデータをDBMSを介して受け取ることが出来るので、アプリケーションソフト側でデータベースの構造に合わせた処理をする必要はありません。DBMSは同時に複数のアクセスを受けた時の優先度を管理し、データの矛盾が起きないようにするので、複数の利用者がデータベースを共有利用することができます。データベース定義機能データベース定義機能は、データ群の構造であるスキーマを定義するためのDBMSの機能です。Language)でスキーマを定義します。データベースの利用の準備作業に相当します。データベース定義機能は、DDLの文を解釈して、データベース内部のスキーマを構築します。データベース操作機能データベース操作機能は、データベースの検索や更新をするためのDBMSの機能です。Language)の文で、個々の検索や更新を指定します。これは日常的な業務の作業に相当します。データ操作機能はDMLの文を解釈して、データベースを検索して検索結果を表示したり、データベースを更新したりします。データベース制御機能データベース制御機能は、データのアクセス制御をするためのDBMSの機能です。データベース制御機能には、データ保全やデータ機密保護などが含まれます。Language)の文で、データのアクセス制御を指定します。データ制御機能はDCLの文を解釈して、アクセス制御の方法を指定して、運用中に制御を続けます。保全機能DBMSの保全機能は、同時更新や障害に対してデータベースを保全するための排他制御や障害管理などの機能です。データの正しさ(整合性)を保証するための機能で、版数管理や排他制御などがあります。同時更新によるデータの矛盾データベースを複数のユーザが共有利用する場合、同一ファイルの同一レコードに対する更新処理を、複数のユーザに同時に許可してしまうと、データベースの更新結果に矛盾が起きてしまう場合があります。値が「200」であるデータをユーザAとユーザBが同時に読み取ったとします。それぞれが、「読み取った値に対して100加算」という演算処理を行い、結果「300」を書き戻すと、遅いほうが速い方の結果を上書きしてしまい、本来「400」となるべきところが「300」となってしまいます。先述のような問題を防止するための機能が排他制御です。排他制御を行いたい場合、データを更新する前にそのデータをロックして、他のユーザがデータを読み書き出来なくします。データを更新する際には、他のユーザがデータをロックしていないか確認して、ロックされている場合は、その処理が終わるまで待ってから処理を始めます。デッドロック排他制御を行っている場合、データを読み書きする順番によって、お互いがお互いのロック解除待ちになって、どちらも処理が継続できない現象が起こります。これを回避するには、データを読み書きする順番を揃えるなどの工夫が必要となります。データ機密保護DBMSのデータ機密保護機能は、ユーザの認証・確認やアクセスの許可を行います。障害回復システムやプログラムの障害に対して、データベースを復旧するための機能です。出来る限り自動で復旧します。データの分析の考え方を修得し,応用する。・データベースの設計の考え方,手順,手法を修得し,応用する。・データの正規化の目的,手順を修得し,応用する。・データベース作成の手順,評価方法を修得し,応用する。データの分析,データベースの設計の考え方を理解し,担当する事項に適用する。・データの正規化の目的,手順を理解し,担当する事項に適用する。・データベースの物理設計における留意事項を理解し,担当する事項に適用する。・データの分析・設計の考え方を理解する。対象業務にとって必要なデータは何か,各データがどのような意味と関連をもっているかなどの分析と整理,異音同義語,同音異義語の発生を抑えるデータ項目の標準化など,データ分析を行う際の考え方を理解する。データモデルの作成手法であるトップダウンアプローチとボトムアップアプローチを理解する。外部設計,内部設計,プログラム作成,テスト,移行に至るまでのデータベース開発の工程と手順,手法を理解する。概念設計では,要求定義で定義されたデータ項目と,システム機能設計の際に発生したデータ項目をまとめ,データ項目全体を設計することを理解する。対多,多対多)などを理解する。用語例:バックマン線図,エンティティ,アトリビュート,リレーションシップ3.データベースの論理設計データの重複や矛盾が発生しないテーブル(表)設計の考え方,主キー,外部キーなどの概念,参照制約,一貫性制約などの制約を理解する。ユーザビューの機能と定義を理解する。正規化などを理解する。正規化の考え方に従った,具体的な設計案に対して更新容易性や性能面などから評価し,最適な設計を行うことを理解する。処理の高速化のためにあえて正規化を行わず,表の結合にかかる時間を短縮するなど,パフォーマンスを考慮したデータベース設計の考え方を理解する。応用情報データベースの物理設計では,アクセス効率,記憶効率の側面からデータベースの最適化を図ることを理解する。磁気ディスク上に記憶される形式や論理データ構造の物理データ構造へのマッピングなど,データベースの物理的構造を設計する際の留意事項を理解する。応用情報データベース環境の準備,入力データの準備,データベースの定義,データの登録,データベースの検証などの一連のデータベースの作成手順を理解する。応用情報データベースの性能評価方法を理解し,評価結果によってはチューニングや再編成などの対応策が必要であることを理解する。応用情報オブジェクト指向データベースが開発された背景を理解し,複雑なデータ構造をもつデータの保存などに利用されていることを理解する。対象業務にとって必要なデータは何か,各データがどのような意味と関連をもっているかなどの分析と整理,異音同義語,同音異義語の発生を抑えるデータ項目の標準化など,データ分析を行う際の考え方を理解する。データモデルの作成手法であるトップダウンアプローチとボトムアップアプローチを理解する。発生を抑えるデータ項目の標準化など、データの名称や意味を標準化することをいいます。データ分析は以下のような手順で行われます。記入している項目などを洗い出す。発生を抑えるようにデータ項目を標準化する。データの重複を排除する。メタデータ(データに関するデータ)をまとめ、データ・ディクショナリ(メタデータの辞書)に格納する。データの標準化データの標準化とは、データの名称や意味を標準化することです。多くのデータを扱う場合の基本として大切です。名称が同じで意味が異なる同音異義語や名称が異なって意味が同じ異音同義語の発生を抑えます。例:保証、保障データの標準化をしないと、例えば同じ種類の伝票データが「部門」と「部署」という表に分かれてしまい、合計値を求めることができません。同音異義語があると、口頭での指示で誤解が生じたり、PC上での漢字変換ミスによるトラブルを誘発したりします。データ重複の排除データ重複の排除とは、一つであるべきデータが複数存在したり、内容が似た表が複数存在したりすることを排除することです。それによって、ミスの防止、処理効率の向上、記憶スペースの削減などをはかります。顧客名簿のデータが重複すると、顧客数のカウントミスや、宣伝メールを複数送信するミスが起きます。メタデータメタデータとは、データのためのデータという意味です。データベースにおいては、データの属性や定義情報を表すデータのことをさして、メタデータと呼んでいます。顧客の方には「顧客名簿」という名称が付与されます。これらの名称は顧客の名刺には記載されていないメタデータです。*表のメタデータ:別名、主キーの列名など*列のメタデータ:データ型、長さ、制約条件などデータディクショナリデータディクショナリ(データ辞書)は、データの名称や意味などのメタデータを登録した表のことです。データベース全体に存在する名称をデータディクショナリとして集中管理し、名称や意味を標準化すると、データベース全体の整合性や簡潔性を保つのに役立ちます。データディクショナリは、データベース管理システムの機能によって、作成・更新します。外部設計,内部設計,プログラム作成,テスト,移行に至るまでのデータベース開発の工程と手順,手法を理解する。概念設計では,要求定義で定義されたデータ項目と,システム機能設計の際に発生したデータ項目をまとめ,データ項目全体を設計することを理解する。対多,多対多)などを理解する。データの重複や矛盾が発生しないテーブル(表)設計の考え方,主キー,外部キーなどの概念,参照制約,一貫性制約などの制約を理解する。ユーザビューの機能と定義を理解する。Approach:データ中心アプローチ)、バックマン線図,エンティティ,アトリビュート,リレーションシップ、配置モード,親子集合順序,親子集合,索引,フィールド(項目),レコード,ファイル,NULL,一意性制約データベースの概念設計データベースの概念設計(外部スキーマの設計)では、DBMSに依存しないデータの関連を表現するのが望ましい形です。そのような方法の一つにE-R図があります。Relationship図)E-R図(E-Rモデル)は構造化分析の技法の一つで、データの関連を図で表現することができます。データベース設計の時に、ユーザの味方(ビュー)を定義するのに用いられます。実体(エンティティ)E-R図は対象データを実体(エンティティ)として四角形で表し、実体と実体の結びつきを関係(関連、リレーションシップ)として矢印(又はひし形付きの線)で表します。*E-R図に描く実体は「社員」や「製品」といった実在するものでも、「注文」などの概念的なものでも構いません。アトリビュート属性(アトリビュート)とは、実体に付随する性質、例えば「社員」に付随する「社員番号」や「氏名」のことです。実体(エンティティ)がデータベースの表に相当し、アトリビュートは表の項目(列)になります。関係(リレーションシップ)関係とは、実体と実体の結びつきのことです。それに名前をつけても付けなくても構いません。関係に対して、カーディナリティを付与して、関係性を示します。カーディナリティカーディナリティとは、集合論の基数あるいは濃度という意味の用語です。関係性を線で表す場合は、「多」を矢じりで示します。データベースを設計する作業の中には、カーディナリティを定める作業があります。一つの実体に対して、一つの実体しか結びつかない。一つの実体に対して、複数の実体が結びつく。複数の実体に対して、複数の実体が結びつく。データベースの論理設計データベースの論理設計では、データの重複や矛盾が発生しないテーブル(表)設計の考え方が必要となります。制約を用いてそれらの問題を回避します。主キースキーマを定義する時、表の主キーとなる列を決めます。主キーとは、各行を識別するために使うキー項目です。表を構成する列のうち、同じ内容が重複して入ることがなく、その内容によって必ず特定の1行を選び出せるような列をその表の主キーに指定します。主キーの列の値をNULL(空値)とすることは認められません。ある一つの列の内容だけでは行を特定できない場合、複数の列を組み合わせて主キーとすることがあります。これを複合キーといいます。関連する表同士を結びつけるための外部キーを指定します。外部キーとは、一方の表から他表を参照するためのキー項目です。主キーと違い、一つの表に複数外部キーを設定でき、キーの内容に重複やNULLがあっても構いません。参照される側は主キーであることが望ましいとされています。参照する側の表に、参照される表の主キーと同じ内容が登録される列を、外部キーとして持たせておきます。すると、外部キーを手がかりに相手の表の主キーと内容が一致する行を探し出し、一つの行として結びつけることができます。制約とは、データベースに作りこまれたルールのことです。データの正しさ、整合性を保つために設定されます。表定義の際のDDLで定義できる他、DBMSによっては、運用中に後から制約を追加したり、on/offの切り替えができたりするものもあります。外部キー制約(参照制約)互いに参照関係のある表同士は、データの整合性を保つ必要があります。そのため、DBMSは以下を制約によって禁止することができます。表のすべての行において、同じ値が同じ列にあってはならない、という制約のことです。データベースの設計において、必要に応じて一意性制約を指定します。(主キーに関しては、自動的に一意性制約がつくDBMSもあります。)例えば、商品コードで商品を特定したい場合、商品コードを主キーにし、商品名に一意性制約をつけます。これによって、異なる商品コードであるのに同じ商品名の商品が存在する、といった事態を避けることができます。正規化などを理解する。正規化の考え方に従った,具体的な設計案に対して更新容易性や性能面などから評価し,最適な設計を行うことを理解する。『一事実一箇所を目指して、テーブルの整合性を保ったまま、テーブルの冗長性を排除してデータを管理できるようにすること』です。具体的には、データベースを設計する際に、各項目の意味や関連性を保ちながら、表ができるだけ簡潔な形になるように分割していく作業を指します。正規化を行うことで、検索の効率が良くなり、データベースの保守作業がしやすくなるなどの長所があります。一方で、表の数が増え、管理の手間がかかる点、一連のまとまった情報を得るために複数の表をたどる必要があり、負荷がかかるといった短所もあります。いう情報を、一つの表に記録したとします。このままでは、同じ内容が繰り返し格納されてしまうので、格納効率の悪い、使いにくいデータベースになってしまいます。このデータベースを整理して、より効率的で使いやすいものにするためには、正規化を行い、共通の主キーに従属する列ごとに幾つかの表に分割します。一つの表を複数に分けるときは、列同士の関連性を失わせないために、参照される表の主キーをもう一方の表に外部キーとして持たせておきます。正規化を徹底する手順は、以下のような3つのステップへ区分されます。繰り返される部分を別の表として分割する。第二正規化キーの一部に従属する部分を別の表として分割する。キーに間接的に従属する部分を別の表として分割する。Aが属性集合Bに関数従属する」とは、「属性集合Bの値を決めると属性集合Aの値が一意に決まる」という意味です。これを「B→A」と表します。キーでない属性が一部のキーにも関数従属することです。この状態であれば、第二正規化をする余地があります。先述の「科目履修」の例であれば、「科目履修」の主キーは「学生コード」と「科目コード」ですが、「学生名」は「学生コード」に従属し、「科目名」は「科目コード」に従属しています。「AがBに従属して、BがCに従属するので、AはCに間接的に従属する」「C→B→A」という状態です。「B→A」の部分を分解するように第三正規化をする余地があります。正規化の手順(具体例)具体的な例として、オンラインショップの商品購入履歴を表にしたものを正規化していきます。1.非正規形まずは、伝票のたぐいをそのまま表にした状態のものを作ります。この時点では、繰返し項目や導出項目(*)を表の中に含みます。合計値や評価など、他の項目から計算や関数によって導き出せる項目のことで、基本的にデータベースに格納する必要はない項目。削除』という作業を行います。繰返し項目は、『商品ID~金額』のフィールドであり、これらのフィールドを『注文明細』テーブルとして分割します。もとに算出できるので、削除します。第一正規化を行った後の表は、以下のようになります。別表に移す作業を行います。『商品ID』によって一意に決まるので、分割できます。第二正規化を行った後の表は、下のようになります。別表に移す作業を行います。『顧客ID』によって一意に決まるので、分割できます。『顧客ID』は、『注文』テーブルの主キーではないため、このようなパターンを『推移関数従属』といいます。第三正規化を行った後の表は、下のようになる。応用情報データベースの物理設計では,アクセス効率,記憶効率の側面からデータベースの最適化を図ることを理解する。磁気ディスク上に記憶される形式や論理データ構造の物理データ構造へのマッピングなど,データベースの物理的構造を設計する際の留意事項を理解する。用語例:ディスク容量見積り,論理データ構造のマッピング,ファイル編成,最適ブロック設計,物理入出力,性能評価,コンプレッション,デコンプレッション,性能改善ポイントデータベースの物理的構造データベースの物理的構造はディスク上に記憶される形式のことです。論理データ構造を、物理データ構造にマッピング(対応付けて当てはめる)します。)の容量を積算して、余裕を加味した上で、磁気ディスクなどの使用料を見積もる必要があります。データベースのデータの操作を修得し,応用する。文を修得し,応用する。・データの抽出などの操作を理解する。関係データベースのデータの操作として,集合演算(和,差,積,直積),関係演算(選択,射影,結合,商)などを理解する。Language:データ操作言語)などに大別されること,また,これらにはSQLを単独で使用する独立言語方式と,他のプログラム言語から使用する親言語方式があることを理解する。データ型,列制約,表制約の定義方法,ビューの更新(更新可能なビューと更新不可能なビュー)を理解する。述語指定,集合関数,グループ化,並べ替えなどを理解する。よるデータ操作の仕組み,利点,利用法を理解する。関係データベースのデータの操作として,集合演算(和,差,積,直積),関係演算(選択,射影,結合,商)などを理解する。関係データベースにおけるデータ操作には、検索系のデータ操作と更新系のデータ操作があります。あり、これらを関係演算といいます。選択とは、評価ら行を抽出する操作です。すべての行のうち、ある条件に当てはまるものだけを選び出します。多くのレコードから必要なレコードだけに絞り込むための操作です。選択は、「商品名=ジュース」のように、一つだけの条件で選ぶ以外に、複数の条件をANDまたはORで組み合わせて使うことができます。仕入先=B飲料」という、二つの条件をANDで結ぶ論理積の関係になります。仕入先=B飲料」という、二つの条件をORで結ぶ、論理和の関係になります。仕入先がA食品以外の行を選択する場合は、「仕入先≠A食品」という否定の関係となります。ワイルドカード選択の条件文に、「%」や「_」といったワイルドカードを文字の代わりに用いて、列の内容の一部を使った選択ができます。任意の文字列を表します。文字数は0文字以上で何文字でも構いません。任意の1文字を表します。上の表の場合、ワイルドカードを用いて以下のように選択できます。「商品名=%パン」:「クリームパン」「あんパン」「チョコパン」を選択。_パン」:「あんパン」を選択。射影とは、表から列を抽出する操作です。幾つかの列からなる表のうち、必要な列のみを表示し、他を非表示にできます。結合とは、複数の表を一つに結合して表示する操作です。別々の表にある共通の項目を結合キーとして表同士を結びつけ、それぞれの表に含まれる列からなる一つの表として表示することができます。表の結合の際、”のりしろ”となる項目を結合キーといいます。結合キーには同じデータ型、同じ桁数の列同士を使います。上の例の場合、それぞれの「商品番号」が結合キーとなっています。二つの表で一方の表と同じ項目を含むレコードを、もうひとつの表から取り出し、その後結果からその項目を削除する。選択や射影、結合などの結果表示される表のことをビュー表といいます。これに対し、実際に保存されている表のことを実表といいます。選択も射影も結合も、データベースのスキーマとして作られている表(実表)から、DBMSが必要な部分を読み込んで表示した結果です。実表そのものを変えてしまう操作ではありません。結合の操作をすると今までなかった列の組み合わせを持つ表を表示できますが、これによってスキーマに新しい表が追加されるというわけではありません。正規化されたスキーマは、選択や射影といった操作でデータを抽出したり組合せたりし易いだけではなく、演算した結果を表示することも可能で、いろいろな用途に利用できます。関係データベースのデータの操作として,集合演算(和,差,積,直積),関係演算(選択,射影,結合,商)などを理解する。表Aと表Bのすべての行を合わせた表を作る演算です。表Aと表Bの両方にある行だけの表を作る演算です。表Aの行と表Bの行のすべてを組み合わせた行で構成される表を作る演算です。列の数や属性はAとBの間で異なっていても構いません。表に新しいレコードを挿入する。表の指定した項目を更新する。表から指定したレコードを削除する。Language:データ操作言語)などに大別されること,また,これらにはSQLを単独で使用する独立言語方式と,他のプログラム言語から使用する親言語方式があることを理解する。用語例:会話型SQL,埋込型SQL,モジュール言語,コマンド方式,フォーム,クエリデータベース言語データベース管理システムへのユーザからの指示は、データベース言語で表現します。データベース定義言語には以下の様なものがあります。Language:DDL)は、データベースを使う準備として、データ群の構造であるスキーマを定義するための言語です。Language:DML)は、日常的にデータベースの検索や更新をするための言語です。DMLには以下の4種類があります。独立言語方式プログラムを作成する際に利用するプログラム言語とは別に用意された言語です。会話形でコマンドを入力して結果が出てくる形で利用します。Language)と呼んでいます。(COBOL、FORTRAN、Cなど)にDMLを組み込んで利用する方式です。高水準言語を親言語と呼びます。親言語方式には組み込み方の違いにより2種類あります。モジュール方式プログラム内からDML部分をサブルーチンとして呼びだす方式です。埋め込み方式プログラム内にDMLを直接書き込んでしまう(埋め込む)方式です。データベースの排他制御,障害回復の考え方,仕組みを修得し,応用する。・トランザクション管理,アクセス効率向上のための考え方を修得し,応用する。・データに対するアクセス制御の必要性,代表的なアクセス権限を修得し,応用する。・データベースの処理方法を理解する。応用情報データの整合性を保つために,複数のトランザクションが同時にデータベースのデータを更新することが起こらないようにする排他制御の考え方を理解する。ロック方式,セマフォ方式,コミット制御の仕組みを理解する。障害に備えたバックアップの方式,世代管理の考え方,障害発生直前の状態まで回復を図るリカバリ処理の仕組み,データベースの利用環境の準備,アクセス効率の向上のための再編成などの考え方,仕組みを理解する。応用情報データベースは複数の利用者が同時にアクセスするので,トランザクション処理にはACID特性が求められること,四つの特性の意味を理解する。応用情報データベースへのアクセス効率向上のために,インデックスを有効に活用する考え方を理解する。利用者ごとに,データに対するアクセス制御を行う必要性があること,アクセス権限としてはデータベースに接続する権限,データを検索する権限,データを新規登録する権限,データを更新する権限などがあることを理解する。応用情報データの整合性を保つために,複数のトランザクションが同時にデータベースのデータを更新することが起こらないようにする排他制御の考え方を理解する。ロック方式,セマフォ方式,コミット制御の仕組みを理解する。相コミットメント,2相コミットメント排他制御DBMSはデータの矛盾を防止するため、排他制御によるアクセスタイミングのコントロールを行います。一つのファイルに対して、一つのトランザクション(取引単位)による更新処理中に、別のトランザクションが更新を行うことを禁止し、先の更新処理が完了しなければ、次の更新処理ができないようにします。占有ロック占有ロックとは、一つのファイルへのアクセスを一つのトランザクションだけに専有させて、他のトランザクションのアクセスを禁止することです。データの更新に対しても、参照に対してもロックを掛けます。先に占有ロックがかかっていた場合、後から占有ロックを掛けることができません。共有ロック共有ロックは、一つのファイルへのアクセスを複数のトランザクションに許可して、占有ロックを禁止することです。共有ロックは、共通の参照ファイルなどに用います。先に占有ロックがかかっていた場合、後から共有ロックはかけることができませんが、先に共有ロックがかかっていた場合、後から共有ロックをかけることはできます。ロック粒度ロック粒度とは、ロックで保護するデータの細かさの度合いです。粒度が粗いということは、保護するデータの単位が大きいということです。ロックのオーバーヘッドは減るという特徴がある一方で、アクセスを禁止される確率が高くなり、アクセス可能になるまで待つことから、性能が低下しがちです。粒度が細かいということは、保護するデータの単位が小さいということです。アクセスを禁止される確率が低いので、性能が高いのが特徴ですが、ロックのための処理の回数が増えてオーバーヘッドが増えます。デッドロックデッドロックとは、複数のプロセスが相手が専有している資源の解放を待って、どちらの処理も停止してしまうことです。対処法としては、以下の方法があります。更新プロセスの開始時に、表単位でロックをかける。更新プロセス開始時に、更新対象の全レコードにロックをかける。全てのプロセスで、更新処理を行う順序を合わせる。コミットメントあらゆる事態に対応するために、DBの更新は”仮”の状態で行われ、いつでももとに戻せるようにしておくのが一般的です。*元に戻すことをロールバックという。仮の更新結果は他のトランザクションからは見えません。コミットメント(コミット)は、仮の更新を確定させる処理のことを指します。コミットが完了してはじめて、他のトランザクションからも更新後の値が参照できるようになります。1相コミットメント1相コミットメントとは、1回の処理でデータベースの更新が確定(コミット)する方式です。単相コミットメントとも呼ばれます。単一のデータベースだけで運用されている場合に利用されたりしますが、データベースが複数関係し分散された環境で運用される場合、1相コミットメント方式では、データベース間に矛盾が生じるリスクがあるため、後述の2相コミットメント方式が採用されています。2相コミットメント2相コミットメント方式では、データベースの更新を「更新準備」と「更新」の2回のフェーズに分けて処理します。この方式は、ネットワークなどを利用し、分散されたデータベースが複数ある場合、1相コミットメント方式では複数のデータベースの更新が正常に終了できない場合があります。確実に全てのデータベースの更新を行うには、分散されたデータベースの更新準備が全て整ってから更新を行えば、すべてのデータベースの更新が行えることになります。このように、更新準備フェーズと更新フェーズの2相にする方式を、2相コミットメントと呼んでいます。更新準備は終わり、更新フェーズに入ってから何らかの障害にて更新が行えなかった場合は、ロールバック処理を全てのデータベースに対して行うことで、更新前の状態にデータベースを戻すことができます。障害に備えたバックアップの方式,世代管理の考え方,障害発生直前の状態まで回復を図るリカバリ処理の仕組み,データベースの利用環境の準備,アクセス効率の向上のための再編成などの考え方,仕組みを理解する。用語例:フルバックアップ,差分バックアップ,増分バックアップ,ダンプファイル,リストア,データディレクトリ,ジャーナルファイル(ログファイル),チェックポイント,ロールフォワード,ロールバック,ウォームスタート,コールドスタートリカバリ機能データベースの障害回復処理には、ロールフォワードとロールバックがあります。ロールフォワード最新のバックアップファイルを書き戻した後、ジャーナルファイルの更新後の情報を用いて、バックアップ時点から障害直前の状態まで更新を進める方法です。ディスクの破損など、大きな障害が置きた場合に行います。障害が発生したディスクなどの媒体を復旧するバックアップファイルを元にデータを書き戻すジャーナルファイルで、バックアップファイル取得後の更新情報を反映するロールバックジャーナルファイルを使って、障害が発生する前の状態に戻す復旧方法です。更新前のレコード内容をジャーナルファイルに保存し、レコードの内容を書き換えます。書き換えが完了したら、更新後の状態をジャーナルファイルに保存して、更新処理を終了します。障害により更新処理が中断された場合には、更新前のデータを元にレコードを更新前の状態に戻し、更新処理を終了します。ジャーナルファイルジャーナルファイルとは、更新前ジャーナル、更新後ジャーナル、更新時刻、トランザクション識別子などを記録する、データベースの更新履歴です。チェックポイントチェックポイントとは、障害に備えて障害回復に必要な情報をジャーナルファイルに記録するというバックアップの時点です。チェックポイントを頻繁に設けると障害回復は正確に近くなりますが、ジャーナルファイルに記録するオーバーヘッドが増えます。ウォームスタート方式ウォームスタート方式は、チェックポイントまで戻って、更新情報の記録を用いてデータベースを回復します。ジャーナルファイルを用いて、最新のチェックポイントの状態に戻す。チェックポイント以降のトランザクションのうち、障害発生前にコミットした分をロールフォワードして、更新を反映。障害発生前にコミットしていない分はロールバックして整合性を確保した後でトランザクションを再実行。ウォームスタート方式は、例えば通信障害などでロランザクションが寸断されたケースなどから復旧する場合に用います。コールドスタート方式コールドスタート方式とは、データベースの状態をすべてクリアして、データベース全体のバックアップファイルを用いて、データベースを回復します。バックアップファイルの作成や回復に時間がかかるため、もとに戻る時点を頻繁には設けられません。ハードウェアを交換する。バックアップを用いて、データベースをバックアップ時点の状態の戻す。ジャーナルファイルが破損している場合は、バックアップを元にジャーナルファイルも復旧させる。データベースのバックアップ以降にコミットしたトランザクションのうち、ジャーナルファイルに更新後情報がある分をロールフォワードして更新を反映する。コールドスタート方式は、ディスクの故障などハードウェアに障害が発生した場合などに用います。応用情報データベースは複数の利用者が同時にアクセスするので,トランザクション処理にはACID特性が求められること,四つの特性の意味を理解する。ACID特性ACID特性とは、トランザクション処理に対して、データベースに求められる4つの特性のことです。データベースには複数のユーザが同時にアクセスするので、注意が必要になります。原始性(Atomicity)一つのトランザクション処理が完全に実行されるか、そうでなければ元の状態に戻るという性質。これがないとデータベースが回復困難な状態になります。一貫性(Consistency)矛盾のない条件で表されるデータベースの整合性が、一つのトランザクション処理の前でも後でも保たれているという性質。独立性(Isolation)一つのトランザクション処理が、他のトランザクション処理に影響されないこと。耐久性(Durability)一つのトランザクション処理が完了したら、その結果は記録されること。これが保証されないと、障害発生時にデータベースが回復困難な状態になります。応用情報データベースへのアクセス効率向上のために,インデックスを有効に活用する考え方を理解する。用語例:インデックス数,負荷,ユニークインデックス,クラスタ化インデックスインデックスの活用データベースのインデックス(索引)は、本体となるデータ群の他に、検索を早めるために設けられたデータ群です。インデックスは、キーとその存在1の一覧であり、本体となるデータ群の配置順をたどる必要が無いので、データベースの性能を向上させます。インデックスを活用すると高速になるのは、インデックス表作成時にハッシュ表やB木など、高速に探索できるためのデータ構造をDBMS側で作成しているため、インデックスを活用すると高速に検索が出来るようになります。複合インデックス複数の項目の値を条件に検索するようなデータ操作をしばしば行う場合に、複数の項目に対して一つのインデックスを設定することです。インデックス作成時の注意事項インデックス作成時には、以下のような点に注意が必要です。絞込効果が小さい項目に設定すると効果が薄い。(例えば、名簿における性別や血液型)データを更新すると、インデックスも更新されるので、更新頻度が多い表にインデックスを作成すると更新速度が低下する。絞込の効果が高く、検索キーとして使われる項目に対して、インデックスを作成するのが望ましい。利用者ごとに,データに対するアクセス制御を行う必要性があること,アクセス権限としてはデータベースに接続する権限,データを検索する権限,データを新規登録する権限,データを更新する権限などがあることを理解する。用語例:参照権限,挿入権限,削除権限アクセス権限アクセス制御とは、どのユーザがどのデータにアクセスできるかという権限(アクセス権限)を決めることです。以下のような種類のアクセス権限があり、データ制御言語を用いることで設定されたり、チェックされたりします。データベースの応用対象,応用方法を修得し,応用する。・分散データベースの特徴,機能を修得し,応用する。データ分析,業務システム,ソフトウェア開発と保守などに,データベースがどのように応用されているかを理解する。・分散データベースの特徴,利点,留意事項,データ同期の仕組みを理解する。・データ資源管理のあらましを理解する。Processing),データマイニングなど,データを分析して有効活用する技術の特徴,これらの技術が企業会計システム,在庫管理システムなどで使われていること,その応用方法を理解する。複数のサイトに配置された分散データベースの特徴,利点,取り扱う上での留意事項,サイト間でのデータ同期の仕組み,関連する機能,集中型データベースとの違いを理解する。応用情報データの属性,意味内容,格納場所など,データを管理するための情報(メタデータ)を収集,管理したデータディクショナリや,ソフトウェア開発と保守における様々な情報を一元的に管理するリポジトリを理解する。Processing),データマイニングなど,データを分析して有効活用する技術の特徴,これらの技術が企業会計システム,在庫管理システムなどで使われていること,その応用方法を理解する。Processing),ETL(Extract/Transform/Load),データクレンジング,ビッグデータ,文書管理システム,営業支援システムデータウェアハウスデータウェアハウスとは、トランザクション(取引)などの時系列データを、長期的に大量に蓄積したデータベースの一種です。通常のデータベースと異なり、過去の取引データを消去することなく、時系列的な分析に用いるのが特徴です。販売管理などの精度を上げることができます。ウェアハウス(倉庫)という言葉が用いられているように、データウェアハウスは、通常のデータベースに比べて、データの更新や検索の回数は比較的少ない代わりに、膨大な記憶容量を必要とします。データマートデータマートとは、データウェアハウスの中から、特定の目的に合う部分を抽出して、通常は部門や個人のデータベースに格納したものです。蓄積されたデータを分析する時の処理効率を良くするのが目的です。膨大なデータの分析作業を支援します。多次元的な観点で傾向を発見したり、整理したりするという特徴があります。汎用的な統計ソフトウェアを用いるのと比べると、分析や報告を繰り返しながら、作業の改善や自動化を継続していくという傾向があります。データマイニングデータマイニングとは、統計的手法などを活用して、膨大なデータを分析して、発見的に新たなノウハウを発掘する作業のことです。発見的分析を助けるコンピュータグラフィックスなどの具体的な技術を指すこともありますが、確たる技法や技術が揃っているわけではなく、ナノテクノロジのような包括的なキャッチフレーズのような位置づけです。複数のサイトに配置された分散データベースの特徴,利点,取り扱う上での留意事項,サイト間でのデータ同期の仕組み,関連する機能,集中型データベースとの違いを理解する。Database)とは、複数の場所に分散されたデータベース群が、一つのものであるかのように扱えるデータベースです。場所は一つのコンピュータの複数の記憶装置である場合、局所ネットワークのサーバである場合、あるいはインターネットで結ばれている場合などがあります。集中データベースと比べると、分散データベースは以下のような特徴や目的を持っています。拠点と各地とで検索・更新が分散している場合、よく検索・更新するデータは、地域に分散したほうが応答時間や通信費用が改善される。構造の多様性データベースの定義を拠点で標準化するのに対して、地域に権限を移譲したり、合併した企業の独自性を尊重したりして、柔軟性を重視しつつ緩やかに連携する。一度に情報システムを拠点に完成してしまうのではなく、時間とともに段階的なサーバなどを追加したり、リプレースしたりしていく方式。コンピュータ、記憶装置、および通信回線の価格低下と性能向上を見越したり、ユーザ側のニーズの変化を見越したりして取られる方式である。大きな災害に備えて、データを分散したり、複製を別の地域においたりして、被害の最小化や回復容易性を狙う。分散データベースの利用にあたっては、以下のような点に留意する必要があります。コミットメント制御などにより、障害が発生したときにもデータの一貫性が保たれるようにする。分散データベース特有のデータの存在場所などをユーザに意識させず、ユーザには集中データベースと同じようにみえること。DBMSと多様なハードウェア、オペレーティングシステム、応用ソフトウェアとの連携を受け入れる性質。分散すると関連する要素が増えるので特に重要である。データベースの設計、レプリケーション、およびユーザの問合せ分の注意によって、遠隔地への問合せや更新の頻度を減らす。透過性とは、分散データベース特有のデータの存在場所などをユーザに意識させず、ユーザからは集中データベースと同じようにみえるという性質です。以下のような特性で構成されます。データの存在場所を意識せずに利用できる性質。データの存在場所が変更されても、影響なく利用できる性質。一つの表が複数の存在場所に重複して存在しても、意識せずに利用できる性質。一つの表が複数の場所に分割されて存在しても、意識せずに利用できる性質。ある場所に障害が発生しても、代替場所が代替することによって、利用し続けることが出来る性質。各場所のデータモデルが階層型データベース、関係データベースなどと異なっても、意識せずに利用できる性質。サイト間でのデータ同期の仕組みデータ更新の際、サイトごとのデータベースと同時に更新する方法と、一台の管理サーバ(マスタサーバ)が更新処理を受け付けて、その後スレーブサーバを更新する方法の2種類があります。前者を同期マルチマスタ方式、後者を非同期マスタスレーブ方式と呼んでいます。レプリケーションレプリケーションとは、データの複製を別の場所にも作成し。常に内容が一致するように更新することです。負荷分散や障害対応を目的としています。レプリケーションは、障害透過性を向上させることができます。応用情報データの属性,意味内容,格納場所など,データを管理するための情報(メタデータ)を収集,管理したデータディクショナリや,ソフトウェア開発と保守における様々な情報を一元的に管理するリポジトリを理解する。System:情報資源辞書システム),ファクトデータベース,リファレンスデータベース,データベースサービスデータディクショナリデータ項目の名称や意味を登録した辞書のことです。「データ辞書」と呼ぶこともあります。企業情報システムにおけるデータディクショナリは、データの整合性を保つためのデータ定義を標準化する役割を果たします。データベースの重複や、同じ意味を持つデータの呼び方が複数存在したり、逆に同じ名称のデータが異なる意味を持ったりして、システムが肥大化することを防ぎます。リポジトリリポジトリはデータベースの類似語であり、様々な意味で使われます。小さなデータベース、簡易なデータベース、検索機能のある文書ライブラリ、あるいはユーザが意識しないシステム内部の共通データやメタデータのファイルなどの意味で使われます。全体として、「小さめの」や「共有資産」のようなニュアンスがあります。文書・プログラムのバージョン管理システムではリポジトリという用語が使われることが多くあります。System:IRDS)とは、データベースのデータ辞書にとどまらず、情報資源全体の辞書システムです。