C++とオブジェクトデータベース入門 8.オブジェクトデータベースとは 森井 喬 Webページ

Slides:



Advertisements
Similar presentations
テストについて 近畿大学大学院 田中大介 資料:
Advertisements

実践!DB逆設計 ~レシートからER図を起こす~
4 相互作用図 後半 FM13001 青野大樹.
Generic programming と STL
DB(データベース)のおはなし 作成者:小野正広 DBと言っても、  ドラゴンボール ではないですぞ! 3/1/2017.
ソフトウェア工学特論III 第10回 その他の図 情報通信工学専攻 GM11013 堀江 真史
アルゴリズムとプログラミング (Algorithms and Programming)
3-1 MySQLについて 発表者:藤村元彦 自然言語処理研究室.
MySQLに接続するデータベースプログラム
~手続き指向からオブジェクト指向へ(Ⅰ)~
プログラミング基礎I(再) 山元進.
Accessによる SQLの操作 ~実際にテーブルを操作してみよう!~.
アルゴリズムとデータ構造1 2007年6月12日
オブジェクト指向プログラミング(2) OOPの三大要素 「クラス」「ポリモーフィズム」「継承」
クラス図(1) 後半 FM13010 村上 太一.
Enterprise CALS Systemの開発
Webを利用した授業支援システムの開発 北海道工業大学 電気電子工学科 H 渋谷 俊彦.
JavaBeans とJSP データベース論 第5回.
Web上で管理・利用できる 面接予約データベースシステムの構築
Day3 Day4 Day3 Day4.
C#とC++とオブジェクト指向 上甲 健史.
ピカチュウによる オブジェクト指向入門 (新版)
この資料は、テキストをもとに、講義のために作成したものです.学習用に活用してください.
マイクロソフト Access を使ってみよう 第1回
朝日大学大学院 経営学研究科 奥山 徹 データベース論 朝日大学大学院 経営学研究科 奥山 徹 2006/05/29 データベース論(7回目)
データベース設計 データベース設計 第0回 オリエンテーション 坂口利裕.
データ構造と アルゴリズム 第四回 知能情報学部 新田直也.
データベース設計の基礎 HN おいろん.
QuestionnairToolの開発 中村太一.
2004年度 サマースクール in 稚内 JavaによるWebアプリケーション入門
メールの利用1 Webメールの利用方法.
第11回 アプリケーションの構成 ~CUI自動販売機の完成!~.
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
第1回.リレーショナルデータベースを使ってみよう
第1回.リレーショナルデータベースを使ってみよう
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
47070 オブジェクト指向モデリング [7] 2001年11月 12日.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
理学部 情報科学科 指導教官 千葉 滋 助教授 学籍番号 03_03686 内河 綾
プログラミング言語入門.
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
電子情報通信学会 2006年総合大会 Webサービス標準化 の提案と実装 2006年3月26日 松江工業高等専門学校 越田高志.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
Javaによる Webアプリケーション入門 第11回
物理的側面を表現する図 Chapter6 物理的側面を表現する図について徐研究室の大楠が発表します。 FM13005 大楠拓也 徐研究室.
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
スマートスクールWeb 発注承認マニュアル
3.リレーショナルデータベース,主キー, SQL
EntityManager と EJB QL EJB 3.0 コース 第8回 2006年8月5日.
データベース設計入門 初音玲.
データベース設計入門 初音玲.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
サブゼミ第7回 実装編① オブジェクト型とキャスト.
データ中心システム設計方法論“DATARUN” 
データベース第3回目 意味ごとにテーブルを分ける
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
第1回.リレーショナルデータベースを使ってみよう
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
データ構造と アルゴリズム 第四回 知能情報学部 新田直也.
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
JSONの概要, Cloud FireStore で JSON を扱う
GluonJ を用いたビジネスロジックからのデータベースアクセスの分離
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
Presentation transcript:

C++とオブジェクトデータベース入門 8.オブジェクトデータベースとは 森井 喬 Webページ 森井 喬 Webページ http://www.db.is.kyushu-u.ac.jp/fish/rinkou/

オブジェクトデータベース(ODB) オブジェクト指向プログラミング言語とデータベースを統合したもの データの集合を、手続きとデータを一体化したオブジェクトの集合として扱う

ODBの利点 SQLなどのDB操作言語を必要とせず、開発で用いた言語( C++等)でデータベースを操作できる SQLでデータベースを操作することもできる オブジェクトモデルのテーブルへのマッピングが不要 テーブルの属性同士の関係などをそのまま2次記憶装置に格納できる スキーマの変更が容易に行うことができる

ODBの欠点 アプリケーション依存性が高い ODBではクラスをそのままデータベースのスキーマとして利用するため、データのスキーマ(クラス)をあらかじめ知っておく必要がある

ODBの用語 クラス インスタンス 属性 RDBでのテーブル RDBでの行 データの1つ1つ RDBでの列 不定長の文字列,画像,音声などのマルチメディア情報も格納できる BLOB(binary large objects)型

クラス クラス メソッド データ クラス メソッド メッセージ メソッドに与える引数

クラスとインヘリタンス 自動車クラス 車種 重量 属性 生産 販売 メソッド 基底クラス 派生クラス 車種 重量 属性 生産 販売 メソッド 乗用車クラス 乗員数 車種 重量 属性 生産 販売 メソッド トラッククラス 載積量 受注 インヘリタンス(継承)

ODBの例 去年のデータベースの勉強会でJasmineで作った商品販売データベース

クラスと属性 Customerクラス Commodityクラス Orderクラス uid ユーザID mail 電子メールアドレス pass パスワード Commodityクラス cid 商品ID cname 商品名 price 単価 quantity 在庫量 Orderクラス onum 注文番号 num 注文数 odate 注文日時 send 発送完了フラグ

メソッド Customerクラス Commodityクラス Orderクラス Integer addcus(uid, mail, pass) ユーザを新たに登録する Integer deletecus(uid) ユーザを削除する Bag<Customer> printcus() ユーザの一覧を表示する Commodityクラス Integer addcom(cid, cname, price, quantity) 商品を新たに登録する Integer deletecom(cid) 商品を削除する Bag<Commodity> printcom() 商品の一覧を表示する Integer addstock(cid,quantity) 在庫の数を増やす Integer deletestock(cid,quantity) 在庫の数を減らす Orderクラス Integer addorder(onum, uid, cid, num) 注文を追加する Integer deleteorder(onum) 注文を削除する Bag<Order> printorder(uid) 注文の一覧を表示する Integer sendorder(onum) 発送を完了の状態にする

クラス(Customerクラス)の定義 defineClass Customer super:Composite description:"Class Customer" { instance: Integer uid unique: mandatory:; String mail; String pass; Integer addcus(Integer u,String m,String p); Integer deletecus(Integer u); Bag<Customer> printcus(); };

メソッド(addcus)の定義 Transaction.start(); defineProcedure Integer Customer::instance:addcus(Integer u,String m,String p) language :"c" { $defaultCF moriiCF; $Customer.new(uid:= u,mail:= m,pass := p); $return(1); }; Transaction.end();

インスタンス インスタンス jasmine(moriiCF) > cos = co.printcom(); jasmine(moriiCF) > cos.print(); Bag{ moriiCF::Commodity::1 { cid = 1, cname = "database", price = 200, quantity = 10 }, moriiCF::Commodity::2 { cid = 2, cname = "c++", price = 100, quantity = 4 } インスタンス