Giter Site home page Giter Site logo

kuis-experiment-4th-database's People

Watchers

 avatar  avatar

kuis-experiment-4th-database's Issues

task_3

課題3 †

課題2で求めた従属性集合に基づいて,関係スキーマを設計しなさい.どのような正規形が得られたかを説明すること.

task_5

質問および更新を実行するSQL文を作成する.上記で構築したデータベースに対して,以下の各内容のSQL文を作成して,実行してください.レポートでは,各項目について,SQL文,その説明および実行結果を示しなさい.また,各SQL文は可能な限り実用的に意味があるものにするようにしてください.

注意:各SQL文は実際に利用される状況を考慮し,現実的に利用可能であるよう心がけること.

1.関係代数の射影および選択に対応するSQL文
2.関係代数の自然結合に対応するSQL文
3.UNIONを含むSQL文
4.EXCEPTを含むSQL文
5.DISTINCTを含むSQL文
6.集合関数(COUNT,SUM,AVG,MAX,MIN)を用いたSQL文
7.副質問(sub query)を含むSQL文
8.UPDATEを含むSQL文
9.ORDRE BYを含むSQL文
10.CREATE VIEWを含むSQL文

task_6

課題6の実施はPostgreSQL ( http://www.postgresql.org/ ) を利用したほうがよい.設定などでつまづいた場合は,TAか教員に相談してください.

SQLによる選択などの検索において,索引による高速化が期待出来ると出来ない場合がある.以下の課題を行い,索引の有効性について考察してください.ただし,索引の種類は,ここではbtreeを指定するものとする.

課題6の関係インスタンスは,プログラムを作成して自動生成してください.テキストファイルからデータベースにデータを投入するにはpsqlの"\COPY"コマンド_3_4を利用すると良いでしょう. 索引の効果をテストするために十分大きな組数の関係を生成する必要があります.

PostgreSQLでの検索時間の測定はコマンド"EXPLAIN"を利用できる.EXPALIN ANALYZEを利用して,予測されるコストと実際の実行コストを出力して比較することができる.レポートでは,以下の課題の予測コストと実際コストの両方を報告してください.

  1. (キャッシュ) データベースではアクセスしたディスクのページを主記憶にキャッシュすることにより,同じ検索を再度実行したときの実行時間を短縮することができる.1つの検索質問を設定して,検索を繰り返して実行し,キャッシュが有効な状況とそうでない状況を示してください.また,キャッシュが効きにくい質問について考えてみてください.

以下の項目では,キャッシュなしという状況で比較してください.

  1. (索引の有無) ある属性に対する選択質問について,その属性に索引を構築している場合と構築してない場合の検索時間の違いを,関係の組数を変化させて求めてください.その結果について考察してください.また,関係の属性数,組数や1つの組の大きさを変化させ,索引が効果的となる状況について考察してみること.多くのDBMSでは主キーには自動で索引が構築されるため,主キー以外の属性を対象にするとよい.
  2. (選択率) 1つの関係に対する選択質問で,質問の選択条件を満たす組の数を変化させる.質問を満たす組がただ1つの場合と,満たす組の割合(選択率)0 < k < 1を変化させた場合のそれぞれについて,索引有無の実行時間を比較する.
  3. (主索引と二次索引) 主索引と二次索引の性能の違いについて調査する.

なお、本課題に関連して索引利用による性能変化に参考情報があります。

task_1

本実験(計算機科学実験及び演習4:データベース)を通して,一つのデータベースを構築して,それを利用するアプリケーションを開発する.

課題1では,まず,データベースを利用するアプリケーションを一つ設定する.例えば,教務情報システム,ビデオレンタルシステム,ショッピングサイト,自動車販売システムなど.

そのアプリケーションでは,複数の役割を設定すること.ここでの役割とは,システムの利用者を利用目的に応じて分類したものである.教務情報システムでは,学生,教員,事務などである.

一つの役割ごとに複数の異なる機能を設定すること.教務情報システムでは,履修科目登録機能,成績登録機能,成績検索機能,授業連絡機能などである.

次に,これらの機能を実現するために,データベースに格納すべき情報を洗い出すこと.これに基づいて,概念設計を行い,実体関連図を作成してください*2.

課題1のレポートを以下の内容についてまとめなさい.

  1. アプリケーションの説明
  2. 利用者の役割の列挙と説明
  3. 役割ごとの機能の列挙と説明
  4. 実体関連図とその説明(各実体集合および関連集合の説明)

task_2

課題2 †

課題1で作成したER図について,関数従属性の集合および自明でない多値従属性の集合を求めなさい.もしこれらの集合が存在しなければ,存在するようにER図を変更すること.各従属性がなぜ成立するのかを文章で説明すること.

task_4

課題4 †

課題1,2,3で設計したデータベースを実際にPostgreSQLもしくはSQLiteで構築し,SQLによる検索文を作成する.

課題4のレポートを以下の内容についてまとめなさい.

表の定義において,キーの指定により保持できる関数従属性や正規形について考察しなさい.
課題3で設計した関係スキーマに基づいて関係表を定義しなさい.定義するためのSQL文を示しなさい.なお,各関数従属性が保持されることを文章で説明しなさい.
データを作成して,上記の表に挿入しなさい.データを挿入するためのSQL文を示しなさい.また,データを挿入した表の出力(先頭の一部で結構)を示しなさい.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.