Submit Search
Upload
なぜ、いまリレーショナルモデルなのか
•
31 likes
•
5,235 views
Mikiya Okuno
Follow
理論から学ぶデータベース実践入門 Nightで発表した資料です。
Read less
Read more
Software
Report
Share
Report
Share
1 of 56
Download now
Download to read offline
Recommended
理論から学ぶデータベース実践入門読書会スペシャルで発表した資料です。
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
2015/8/3にウルシステムズ河野さんに講演いただいた「概念モデリング再入門+DDD」の資料です。
概念モデリング再入門 + DDD
概念モデリング再入門 + DDD
Hiroshima JUG
Oracle Spatial and Graph RDF Semantic Graph RDF 超入門
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
オラクルエンジニア通信
更新日時を排除していくことでそこそこのモデルを書けるようになる手法です。
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
Visual Studio Users Community Japan #1 で発表した資料になります。 https://vsuc.connpass.com/event/143114/
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
アジャイル札幌 ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
北海道データベースDAYで使用した資料です。db tech showcaseの内容に、いくつかの説明を加えています。(講義時間90分)
リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計
Mikiya Okuno
・OSC徳島 ・PostgreSQLカンファレンス ・JJUG CCC の登壇資料です
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
Recommended
理論から学ぶデータベース実践入門読書会スペシャルで発表した資料です。
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
2015/8/3にウルシステムズ河野さんに講演いただいた「概念モデリング再入門+DDD」の資料です。
概念モデリング再入門 + DDD
概念モデリング再入門 + DDD
Hiroshima JUG
Oracle Spatial and Graph RDF Semantic Graph RDF 超入門
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
オラクルエンジニア通信
更新日時を排除していくことでそこそこのモデルを書けるようになる手法です。
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
Visual Studio Users Community Japan #1 で発表した資料になります。 https://vsuc.connpass.com/event/143114/
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
アジャイル札幌 ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
北海道データベースDAYで使用した資料です。db tech showcaseの内容に、いくつかの説明を加えています。(講義時間90分)
リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計
Mikiya Okuno
・OSC徳島 ・PostgreSQLカンファレンス ・JJUG CCC の登壇資料です
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
SQLアンチパターン 26章「とりあえず削除フラグ」 2015/08/31 @ GMO Yours #ronsakucasual https://atnd.org/events/68902
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
第1回 しょぼべん ( http://connpass.com/event/10849/ ) で話しした、イミュータブルデータモデル(世代編)です。
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima
REST and gRPC for microservices backend API
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
2021/11/24 「イミュータブルでゆこう」イベントの資料です。 データをリソースとイベントに場合分けして考えようという至極単純な話を1時間ほどしました。
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
関西DDD.java ドメイン駆動設計の原則、全17章の要点、実践してみて学んだこと
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
増田 亨
データモデリングの方法論について解説資料を作りました。ご意見がありましたら、お願いいたします。Twitter: https://twitter.com/hidekatsu_izuno 以下に移行します。今後はこちらがメインとなります。 https://speakerdeck.com/hidekatsu_izuno/detamoderingutekunituku
データモデリング・テクニック
データモデリング・テクニック
Hidekatsu Izuno
Developers Boost KANSAI (2019.6.15 @Osaka) の発表資料です。
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
株式会社MonotaRO Tech Team
2017/4/12 関西PHPユーザーズグループの勉強会での登壇資料です。ServiceとRepositoryについて自分なりに解釈してみました。
ServiceとRepository
ServiceとRepository
シオリ ショウノ
ML15講演資料
ChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くない
Carnot Inc.
Forkwell Meetup #3 https://forkwell.connpass.com/event/48147/
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
devfest tokyo 2017
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
イベント・ソーシングを知る
イベント・ソーシングを知る
Shuhei Fujita
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
その時は最善の実装だと思っていたことでも、月日が立つことで、それは間違いだったと気づくことがあります。 5年という歳月はそれを気づかせるには十分な時間で、 DDDをやり始めた初期の頃に書かれたコードは良くディスられたりしています。 そのコードは何を失敗していたのか?そして、それは改善するために改善した事とは? BIGLOBEにおける"今"のいいコードの書き方をできる限り具体的な事例を元に紹介します。
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
BIGLOBE Inc.
例外設計における大罪 Jun 27, 2012 @ java-ja
例外設計における大罪
例外設計における大罪
Takuto Wada
ドメイン駆動設計 のための オブジェクト指向設計 の基本と実装技法。
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
増田 亨
質問への回答(35件)を、ブログにまとめているのでこちらご覧ください https://little-hands.hatenablog.com/entry/2019/08/31/genba_de_ddd 「Mix Leap Study 特別編 - レガシーをぶっつぶせ。現場でDDD! コラボカンファレンス」登壇資料 ブログ:https://little-hands.hatenablog.com/ Twitter:https://twitter.com/little_hand_s 質問箱:https://peing.net/ja/little_hands
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
技術書典8で発売予定だった「ドメイン駆動設計 モデリング/実装ガイド」 https://little-hands.booth.pm/items/1835632 発売記念に、本書内容の第3章の内容を解説するオンライン勉強会です。 特に前提知識は設定せず、本書をお持ちでなくても理解できる構成にする予定ですが、併せてお読みいただけるとより深く理解する助けになると思います。 3章より「DDD固有のモデリング手法」 集約とは 境界付けられたコンテキストとは sli.doを使って質疑応答 [前回イベント][https://ddd-community-jp.connpass.com/event/168674/) でお答えしきれなかったsli.doの質問にもお答えしようと思います。 ■協賛いただきました! Forkwell(株式会社grooves)様 https://forkwell.com/ ソニー株式会社 https://www.sony.co.jp/
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
Koichiro Matsuoka
JJUG CCC 2018 Fall #ccc_e3
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
Yoshitaka Kawashima
2014/08/29 YAPC::Asia 2014
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
Hacker Tacke (2016) で使用したスライドです。リレーショナルデータベースを使う上でのポイントや、そもそも何故データベースを使うのかといった話などについて解説しています。
リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version
Mikiya Okuno
理論から学ぶデータベース実践入門ngiht LT大会 2015年10月8日 ユニークビジョン株式会社 CTO 青柳公右平 #db_jissen_night
集合演算を真っ向から否定するアレの話
集合演算を真っ向から否定するアレの話
Kouhei Aoyagi
More Related Content
What's hot
SQLアンチパターン 26章「とりあえず削除フラグ」 2015/08/31 @ GMO Yours #ronsakucasual https://atnd.org/events/68902
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
第1回 しょぼべん ( http://connpass.com/event/10849/ ) で話しした、イミュータブルデータモデル(世代編)です。
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima
REST and gRPC for microservices backend API
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
2021/11/24 「イミュータブルでゆこう」イベントの資料です。 データをリソースとイベントに場合分けして考えようという至極単純な話を1時間ほどしました。
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
関西DDD.java ドメイン駆動設計の原則、全17章の要点、実践してみて学んだこと
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
増田 亨
データモデリングの方法論について解説資料を作りました。ご意見がありましたら、お願いいたします。Twitter: https://twitter.com/hidekatsu_izuno 以下に移行します。今後はこちらがメインとなります。 https://speakerdeck.com/hidekatsu_izuno/detamoderingutekunituku
データモデリング・テクニック
データモデリング・テクニック
Hidekatsu Izuno
Developers Boost KANSAI (2019.6.15 @Osaka) の発表資料です。
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
株式会社MonotaRO Tech Team
2017/4/12 関西PHPユーザーズグループの勉強会での登壇資料です。ServiceとRepositoryについて自分なりに解釈してみました。
ServiceとRepository
ServiceとRepository
シオリ ショウノ
ML15講演資料
ChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くない
Carnot Inc.
Forkwell Meetup #3 https://forkwell.connpass.com/event/48147/
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
devfest tokyo 2017
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
イベント・ソーシングを知る
イベント・ソーシングを知る
Shuhei Fujita
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
その時は最善の実装だと思っていたことでも、月日が立つことで、それは間違いだったと気づくことがあります。 5年という歳月はそれを気づかせるには十分な時間で、 DDDをやり始めた初期の頃に書かれたコードは良くディスられたりしています。 そのコードは何を失敗していたのか?そして、それは改善するために改善した事とは? BIGLOBEにおける"今"のいいコードの書き方をできる限り具体的な事例を元に紹介します。
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
BIGLOBE Inc.
例外設計における大罪 Jun 27, 2012 @ java-ja
例外設計における大罪
例外設計における大罪
Takuto Wada
ドメイン駆動設計 のための オブジェクト指向設計 の基本と実装技法。
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
増田 亨
質問への回答(35件)を、ブログにまとめているのでこちらご覧ください https://little-hands.hatenablog.com/entry/2019/08/31/genba_de_ddd 「Mix Leap Study 特別編 - レガシーをぶっつぶせ。現場でDDD! コラボカンファレンス」登壇資料 ブログ:https://little-hands.hatenablog.com/ Twitter:https://twitter.com/little_hand_s 質問箱:https://peing.net/ja/little_hands
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
技術書典8で発売予定だった「ドメイン駆動設計 モデリング/実装ガイド」 https://little-hands.booth.pm/items/1835632 発売記念に、本書内容の第3章の内容を解説するオンライン勉強会です。 特に前提知識は設定せず、本書をお持ちでなくても理解できる構成にする予定ですが、併せてお読みいただけるとより深く理解する助けになると思います。 3章より「DDD固有のモデリング手法」 集約とは 境界付けられたコンテキストとは sli.doを使って質疑応答 [前回イベント][https://ddd-community-jp.connpass.com/event/168674/) でお答えしきれなかったsli.doの質問にもお答えしようと思います。 ■協賛いただきました! Forkwell(株式会社grooves)様 https://forkwell.com/ ソニー株式会社 https://www.sony.co.jp/
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
Koichiro Matsuoka
JJUG CCC 2018 Fall #ccc_e3
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
Yoshitaka Kawashima
2014/08/29 YAPC::Asia 2014
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
What's hot
(20)
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
データモデリング・テクニック
データモデリング・テクニック
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
ServiceとRepository
ServiceとRepository
ChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くない
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
イベント・ソーシングを知る
イベント・ソーシングを知る
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
例外設計における大罪
例外設計における大罪
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
DDDオンライン勉強会#2 「集約・境界付けられたコンテキスト」
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
Viewers also liked
Hacker Tacke (2016) で使用したスライドです。リレーショナルデータベースを使う上でのポイントや、そもそも何故データベースを使うのかといった話などについて解説しています。
リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version
Mikiya Okuno
理論から学ぶデータベース実践入門ngiht LT大会 2015年10月8日 ユニークビジョン株式会社 CTO 青柳公右平 #db_jissen_night
集合演算を真っ向から否定するアレの話
集合演算を真っ向から否定するアレの話
Kouhei Aoyagi
2015-10-08(木)に行われた理論から学ぶデータベース実装入門Nightで行ったLightning Talkのスライドです。
NULLとの戦い RDBMS実装編
NULLとの戦い RDBMS実装編
Meiji Kimura
理論から学ぶデータベース実践入門Night(mvccでちょっとハマった話)
理論から学ぶデータベース実践入門Night(mvccでちょっとハマった話)
理論から学ぶデータベース実践入門Night(mvccでちょっとハマった話)
Hironori Miura
2015.10.08に開催された「理論から学ぶデータベース実践入門Night」でLTした際のスライド
Datalogからsqlへの トランスレータを書いた話
Datalogからsqlへの トランスレータを書いた話
Yuki Takeichi
2015/10/08 理論から学ぶデータベース実践入門Night のLT登壇資料です。論理包含について少し語らせて頂きました。前回登壇予定だったものを少し修正してます。
ならば(その弐)
ならば(その弐)
Tomoaki Hiramoto
DBエンジニアのための技術勉強会(第3回)で使用した資料です。主にリレーショナルモデルと正規化について解説しています。リレーショナルモデルの限界について正しく認識してこそ、リレーショナルモデルを理解したと言えると思います。
データベース設計徹底指南
データベース設計徹底指南
Mikiya Okuno
Viewers also liked
(7)
リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version
集合演算を真っ向から否定するアレの話
集合演算を真っ向から否定するアレの話
NULLとの戦い RDBMS実装編
NULLとの戦い RDBMS実装編
理論から学ぶデータベース実践入門Night(mvccでちょっとハマった話)
理論から学ぶデータベース実践入門Night(mvccでちょっとハマった話)
Datalogからsqlへの トランスレータを書いた話
Datalogからsqlへの トランスレータを書いた話
ならば(その弐)
ならば(その弐)
データベース設計徹底指南
データベース設計徹底指南
Similar to なぜ、いまリレーショナルモデルなのか
dbtech showcase 2014で使ったスライドです。
あなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデル
Mikiya Okuno
MySQL・PostgreSQLユーザーグループ(MyNA・JPUG)合同DB勉強会で発表した資料です。NoSQLのご利用は計画的に!! Transcriptが文字化けしているようなので、スライドそのものを見てください。
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
Mikiya Okuno
まべ☆てっく Vol.1にて発表したスライドです。リレーショナルデータベースをどのように使うべきか、あるいはそもそも何故データベースを使うべきなのかといったことについて解説しています。
リレーショナルデータベースとの上手な付き合い方
リレーショナルデータベースとの上手な付き合い方
Mikiya Okuno
第1回Database Lounge Tokyoで発表したスライドです。ゆるふわにMySQLのアーキテクチャを解説しました。
MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座
Mikiya Okuno
Database smells
Database smells
Mikiya Okuno
Validation nightで発表したスライドです。
RDBにおけるバリデーションをリレーショナルモデルから考える
RDBにおけるバリデーションをリレーショナルモデルから考える
Mikiya Okuno
WACATE 2018 冬の講演資料です。
テストの視点からのモデリング(公開用) #wacate
テストの視点からのモデリング(公開用) #wacate
Kinji Akemine
This is the documentation about "Analytics Environment" in Japanese.("分析環境"についての資料です。)
Analytics Environment
Analytics Environment
Yuu Kimy
詳解MySQL 5.7 出版記念交流会で使用したスライドです。
私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったか
Mikiya Okuno
Database qpstudy-okuno
Database qpstudy-okuno
Mikiya Okuno
Excel方眼紙爆発しろ!
Scalaで萌える関数型プログラミング[エッセンシャル版]
Scalaで萌える関数型プログラミング[エッセンシャル版]
Ra Zon
2011年11月25日のClubDB2で行ったライトニングトークでの発表資料。
NoNoSQL
NoNoSQL
Yuichiro Ebihara
機械学習/Kaggleもくもく会#11@大阪での発表資料になります
変数の重要度ってどうやったらわかるん?
変数の重要度ってどうやったらわかるん?
hiroya akita
2017/2/22 Deep Learning JP: http://deeplearning.jp/seminar-2/
[DL輪読会]Learning convolutional neural networks for graphs
[DL輪読会]Learning convolutional neural networks for graphs
Deep Learning JP
DSIRNLP#5 の 松田の発表です
いまさら聞けない “モデル” の話 @DSIRNLP#5
いまさら聞けない “モデル” の話 @DSIRNLP#5
Koji Matsuda
社内勉強会発表用 内容 ・モジュールの凝集度 ・モジュール結合度 ・オブジェクト指向 ・インタフェース
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
Hajime Yanagawa
ソフトウェア工学2023
ソフトウェア工学2023 05 モデリング
ソフトウェア工学2023 05 モデリング
Toru Tamaki
おすすめの技術書 LT会 2021/03/22で発表した資料です。 https://rakus.connpass.com/event/204979/
SQLで陥りがちなアンチパターンを知ろう「SQLアンチパターン」
SQLで陥りがちなアンチパターンを知ろう「SQLアンチパターン」
Tomotaka Suzuki(御成門プログラマー)
機械学習の説明方法をRで使うためのチュートリアル. DALEXとimlパッケージを紹介します。
How to use in R model-agnostic data explanation with DALEX & iml
How to use in R model-agnostic data explanation with DALEX & iml
Satoshi Kato
2013年5月27日(月)に開催された、第68回PHP勉強会で、MySQLおよびデータベースについてお話をさせていただきました。 MySQLのバージョン番号についての基本的な話題から、MySQLの最新情報まで、そして、先週発売されたばかりの、セルコ「プログラマのためのSQL」第4版の紹介もあります。
MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会
MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会
sakaik
Similar to なぜ、いまリレーショナルモデルなのか
(20)
あなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデル
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
リレーショナルデータベースとの上手な付き合い方
リレーショナルデータベースとの上手な付き合い方
MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座
Database smells
Database smells
RDBにおけるバリデーションをリレーショナルモデルから考える
RDBにおけるバリデーションをリレーショナルモデルから考える
テストの視点からのモデリング(公開用) #wacate
テストの視点からのモデリング(公開用) #wacate
Analytics Environment
Analytics Environment
私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったか
Database qpstudy-okuno
Database qpstudy-okuno
Scalaで萌える関数型プログラミング[エッセンシャル版]
Scalaで萌える関数型プログラミング[エッセンシャル版]
NoNoSQL
NoNoSQL
変数の重要度ってどうやったらわかるん?
変数の重要度ってどうやったらわかるん?
[DL輪読会]Learning convolutional neural networks for graphs
[DL輪読会]Learning convolutional neural networks for graphs
いまさら聞けない “モデル” の話 @DSIRNLP#5
いまさら聞けない “モデル” の話 @DSIRNLP#5
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
ソフトウェア工学2023 05 モデリング
ソフトウェア工学2023 05 モデリング
SQLで陥りがちなアンチパターンを知ろう「SQLアンチパターン」
SQLで陥りがちなアンチパターンを知ろう「SQLアンチパターン」
How to use in R model-agnostic data explanation with DALEX & iml
How to use in R model-agnostic data explanation with DALEX & iml
MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会
MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会
More from Mikiya Okuno
db tech showcase 2017 tokyoで使った資料です。
MySQL Cluster 新機能解説 7.5 and beyond
MySQL Cluster 新機能解説 7.5 and beyond
Mikiya Okuno
db tech showcase 2017 OSSで使用した資料です。MySQL 5.7上の機能で快適にパフォーマンス解析をするために利用できる様々なツールを紹介しています。
MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編
Mikiya Okuno
MySQL 5.7のセキュ率関係の新機能についての解説です。MySQL 5.7新機能攻略徹底講座で使用した資料です。
What's New in MySQL 5.7 Security
What's New in MySQL 5.7 Security
Mikiya Okuno
MySQL 5.7のレプリケーションの新機能についての解説です。MySQL 5.7新機能攻略徹底講座で使用した資料です。
What's New in MySQL 5.7 Replication
What's New in MySQL 5.7 Replication
Mikiya Okuno
LLoTで発表した資料です。
とあるギークのキーボード遍歴
とあるギークのキーボード遍歴
Mikiya Okuno
db tech showcase 2016 Tokyo で発表した資料です。MySQL 5.7の新機能のうち、InnoDBについてまとめてあります。
What's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDB
Mikiya Okuno
MySQL User Conference Tokyo 2015で発表した資料です。MySQL 5.7はオプティマイザがかなり良くなっているのでぜひお試しください。
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
Mikiya Okuno
DB Tech Showcase 2015 Tokyoで発表した資料です。
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
Mikiya Okuno
SQLアンチパターン読書会最終回(第25章)で用いた資料です。章タイトルは「砂の城」でしたが、スライド自身にはもう少し分かりやすいタイトルをつけています。サービス安定稼働のためにどういったことが必要なのかというのが、スライドの主旨です。最後に少しオマケあり。
人類は如何にして大切な データベースを守るべきか
人類は如何にして大切な データベースを守るべきか
Mikiya Okuno
第5回中国地方DB勉強会で発表したスライドです。MySQLでよく起きる問題について、傾向と対策をまとめています。
MySQLトラブル解析入門
MySQLトラブル解析入門
Mikiya Okuno
Mysql toranomaki
Mysql toranomaki
Mikiya Okuno
MySQL Cluster Casual Talksで使った資料です。Slideshareの表示ではフォントがおかしいのでダウンロードして使ってください。
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
Mikiya Okuno
@第一回 中国地方DB勉強会で発表した資料です。
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
Mikiya Okuno
Rdbms qpstudy-okuno
Rdbms qpstudy-okuno
Mikiya Okuno
MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012
Mikiya Okuno
MySQL日本語利用徹底入門
MySQL日本語利用徹底入門
Mikiya Okuno
MySQL Casual #2で使ったスライドです。
Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2
Mikiya Okuno
hbstudy #13: Art of MySQL Replication.
Art of MySQL Replication.
Art of MySQL Replication.
Mikiya Okuno
More from Mikiya Okuno
(18)
MySQL Cluster 新機能解説 7.5 and beyond
MySQL Cluster 新機能解説 7.5 and beyond
MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編
What's New in MySQL 5.7 Security
What's New in MySQL 5.7 Security
What's New in MySQL 5.7 Replication
What's New in MySQL 5.7 Replication
とあるギークのキーボード遍歴
とあるギークのキーボード遍歴
What's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
人類は如何にして大切な データベースを守るべきか
人類は如何にして大切な データベースを守るべきか
MySQLトラブル解析入門
MySQLトラブル解析入門
Mysql toranomaki
Mysql toranomaki
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
Rdbms qpstudy-okuno
Rdbms qpstudy-okuno
MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012
MySQL日本語利用徹底入門
MySQL日本語利用徹底入門
Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2
Art of MySQL Replication.
Art of MySQL Replication.
なぜ、いまリレーショナルモデルなのか
1.
なぜ、いまなぜ、いま リレーショナルモデルリレーショナルモデル なのかなのか 奥野 幹也 Twitter: @nippondanji mikiya
(dot) okuno (at) gmail (dot) com @ 理論から学ぶデータベース 実践入門 Night
2.
免責事項 本プレゼンテーションにおいて示されている見解は、私 自身の見解であって、オラクル・コーポレーションの見 解を必ずしも反映したものではありません。ご了承くだ さい。
3.
自己紹介 ● MySQL サポートエンジニア – 日々のしごと ●
トラブルシューティング全般 ● Q&A 回答 ● パフォーマンスチューニング など ● ライフワーク – 自由なソフトウェアの普及 ● オープンソースではない ● GPL 万歳!! – 最近はまってる趣味はリカンベントに乗ること ● ブログ – 漢のコンピュータ道 – http://nippondanji.blogspot.com/
4.
なぜ、いま リレーショナルモデル なのか?
5.
リレーショナルモデルは枯れた理論 なのに何で今さら? ● 40 年以上前(!)から存在する理論 ● RDBMS
が主流とはいうけれども・・・ – 現代的な課題はスケーラビリティ!! – 勢力を拡大する NoSQL !! ● 理論の話なので実践よりまず座学 – エキサイティングな要素無し!! – 小難しい話ばかり!!
6.
巷に溢れるあやふやな情報 ● リレーショナルモデルに触れない SQL
の解説 – SQL は書けるようになるけれども・・・ ● 理論に基づかないノウハウの解説 – リレーションは 2 次元の表です – データベースは単なる入れ物です – 正規化の目的は冗長性の排除です – 正規形は第 3 までで OK です – すべてのテーブルにサロゲートキーをつけるべきです – ORM を使えば SQL は知らなくても良い etc etc
7.
そして、真実を知る者は 現場からいなくなった・・・ ● それでも世の中回ってる – 率直なところ「意外といけるもんだね・・・」という感想 ●
とはいえ効率は悪い – クエリの実行効率 – RDBMS を用いた開発効率 – 無駄三昧!!デスマーチ三昧!!
8.
どげんかせんと いかん・・・・・!!
9.
そこで、私はペンを取り 立ち上がった!!
10.
皆さんに本書で伝えたいこと ● リレーショナルモデルの重要性 ● リレーショナルモデルの本当の姿 ● リレーショナルモデルの使い方 ●
リレーショナルモデルの限界 ● リレーショナルモデル以外に必要な知識 ※ 入門書なのでさらなる勉強のとっっかかりにしてもらえると嬉しいです。偉 そうに本なんか出してますが、私も道半ばです。ともに道を歩んでいきましょ う!!入門なのに難しいとか間違いがあるという声をよく耳にしますが、私の 至らなさが原因です。すみません。 サポートページ⇒ http://gihyo.jp/book/2015/978-4-7741-7197-5/support
11.
リレーショナルモデルは道具 ● 道具には道具に合った使い方、使いみちがある ● 道具の性質や使い方を知らずして、使いみちは分からない – RDB
を使うべきかどうか – 使うとしたらどう使うのがベストなのか ● 世の中の間違った使い方を正したい
12.
データモデルとは!
13.
データモデルとは ● データの論理的な表現方法 – データを表現するためにどんな方法が使えるか ●
データを構成する要素 ● データに対する演算 – 物理じゃないよ!! ● 物理的な表現方法は、データがどのようなフォーマット でファイルに格納されているか等 ● データベース設計のことじゃないよ!!
14.
データモデル=データ設計? ● データモデルという言葉は二通りの意味で使われる – データの論理的な表現 –
データ設計 ● 意味は全く違う – 両者を混同すると意味不明!!
15.
データは格納するだけで 終わりではない ● 格納して終わりではない!! – アプリケーションから利用してこそ意味がある –
入れっぱなしで OK なら、そもそもデータを格納する意味 はあるのか? ● どのように出し入れするかが重要 – できるだけ簡単かつ的確に出し入れしたい – 必要なデータは何かを簡潔に定義できること – ≒ データに対する演算
16.
データモデルと演算 ● データモデル上に定義された演算 – データの意味から演算の種類が必然的に決まる ●
整数の四則演算、文字列の分解・連結 ● リレーショナルモデルの射影、制限、結合 etc – 処理系に最初から用意されている ● 高速で信頼できる操作 ● 用意された演算を適切に使えば簡素に書ける – 反例:文字列で配列を実装するケースを考えよ ● 遅い ● 実装できてもバグだらけ ● そもそも実装する意味がない
17.
データベースを単なる入れ物だと 考えてはいけない理由 ● データベースはデータモデルを意識して作られている – データモデルに沿った演算が用意されている ●
データモデルに沿った使い方が得意 ● そうでない処理は苦手 – データモデルを実践できるかどうかで、データベースのパ ワーを利用できるかどうかが決まる ● データベースが単なる入れ物だと考える背景 – 「自分で書けば何でもできる」という考え – データモデルを知らない
18.
プログラミングパラダイムと データモデル ● プログラミングパラダイム – 手続き型 –
オブジェクト指向 – 関数型 etc etc ● プログラミング言語にはそれぞれ適した書き方がある!! – Java はオブジェクト指向で使うべき ● main メソッドに全てのロジックを記述するべきではない ● データモデルにはそれぞれ適した DB 設計がある!! – 「データベースは単なるデータの入れ物だ」という考え 方は、 Java で main メソッドに全てを記述するのに等しい
19.
様々なデータモデル
20.
代表的なデータモデル ● リレーショナルモデル ● グラフ ● 階層型 ●
キーバリュー ● オブジェクト ● XML ● ドキュメント
21.
適切なデータモデルを選ぶ ● 双方向でマッチングする – そのデータモデルはどのような演算が得意か –
アプリケーションが必要とする演算は何か ● 最大公約数を取る – データモデルは万能ではない ● 演算がうまく表現できないものも存在する – データモデルに合致しない部分はアプリケーション側で作 りこむ ● データベースソフトウェアが備えている、データモデルか ら逸脱した演算を活用する – ソートやストアドプロシージャ、マテリアライズドビューなど
22.
一つのデータモデルでは 足りない場合 ● 複数の製品を組み合わせる – 異なるデータモデルを持つ製品を組み合わせる –
データの同期が課題 ● 分散トランザクションがあれば理想 ● トランザクションがない製品はキャッシュとして ● マルチモデル – ひとつの製品が複数のデータモデルを持つ ● RDB + JSON etc – データの同期について考える必要がない – スケーラビリティが課題
23.
リレーショナルモデル
24.
リレーショナルモデルとは! ● 集合に根ざしたデータモデル ● リレーションという名前のデータ構造を用いてデータを表現 する – リレーションを単位として様々な演算を行う ●
リレーション=集合 ● 集合演算+ α – リレーションはデータそのもの – テーブル同士の関係性(リレーションシップ)ではない
25.
リレーションとは ● 現実世界のある物事に対する事実の集合 テーブル ≒ リレーション
26.
集合の性質 ● 重複がない ● NULL がない –
実際に存在する値のみ ● 要素間に順序がない – 例え数値でも 米国 ベトナム 日本 オーストラリア スウェーデン カメルーン 要素が含まれるか どうかだけが重要
27.
リレーションの構成部品 ● リレーション=見出し(ヘッダ)+本体(ボディ) ● 見出し(ヘッダ、 headding
) – 属性の集合 ● 属性(アトリビュート) – 名前と型(タイプ) ● 属性値 – 属性で定義された型を持つ値 – ≒ 列(カラム) ● 組(タプル) – 見出しに対応した属性値の集合 – ≒ 行(ロー) ● 本体(ボディ) – 組(タプル)の集合
28.
リレーショナルモデル≠ SQL リレーショナルモデル SQL 関係(リレーション)
表(テーブル) 属性 [ 値 ] (アトリビュート) 列(カラム) 組(タプル) 行(ロー) 対応する概念だが性質は異なる。
29.
つづきは本で・・・
30.
データモデルを知ることは超重要 ● データモデルを知らずにデータベースは使いこなせない ● データにはそれぞれの性質にあった演算がある – リレーションに対してしかリレーショナルモデルの演算は適 用できない!! –
リレーションとしてデータを表現することが重要 ● ただしリレーショナルモデルには適さないデータがある – リレーショナルモデルを適用すべきではない – 適するかどうかはリレーショナルモデルを知らずして判断 できない
31.
SQL と リレーショナルモデル
32.
SQL にあって リレーショナルモデルにないもの ● 行データの重複 ● 行データの順序 ●
カラムの順序 ● テーブル(リレーション)の更新 ● ストアドプロシージャ、トリガー ● トランザクション ● NULL
33.
なぜ SQL と リレーショナルモデルは違うのか ●
リレーショナルモデルには限界がある – 格納できるデータは集合として表現できるものに限る – 実行できる演算はリレーションの演算のみ ● 集合演算+ α ● アプリケーションが必要とするデータは多種多様 – リレーショナルモデルだけでは足りなかった – 更新という概念が実装上どうしても必要だった ● トランザクション ● つまり、純粋なリレーショナルモデルよりも SQL のほうが適用 範囲が広い
34.
ただしそれは 諸刃の剣だった・・・
35.
NULL の功罪 ● NULL
によって、 SQL はリレーショナルモデル以上の表現力を 手に入れた!! ● しかしその代償は大きかった・・・ – Unknown な値とは一体何なのか – 3 値論理による複雑さの上昇 – 閉世界仮設の崩壊 – オプティマイザも真価を発揮できない ● 今扱っているデータがリレーショナルモデルの範疇かどうか を見極めることが重要!! – NULL があってもいいかどうか
36.
データの正しさに ついての考察
37.
正しいデータを得られない データベースは無価値 ● 正しい答えが欲しいからデータベースを使う – デタラメな答えで良いのなら
/dev/urandom でも使ったほう がマシ ● 速いしリソース食わないし文句なし!! ● データの正しさとは一体何か?
38.
RDB 上でデータの正しさを保つ ● トランザクション –
同時アクセス時の整合性 – クラッシュリカバリ ● リレーショナルモデル – リレーション = 論理的に真となる命題の集合 ● 正規化理論 – 重複を排除することによる論理的な矛盾の回避 ● 制約 – ビジネスロジック
39.
NoSQL 上でデータの正しさを保つ ● RDB
のような便利な道具はない – トランザクションなし – リレーショナルモデルなし – 制約なし ● データの正しさの保証はアプリケーションに委ねられる – データの正しさを保証するためのコードを量産 – バグはデータの不整合に直結する – テストコードが増殖する
40.
分離レベルとデータの正しさ ● 分離レベルはトランザクションの概念であって、リレーショナ ルモデル上にはそんな概念はない – リレーショナルモデルでは、データは全てある瞬間のス ナップショットであり、同時アクセスによって他のセッション から変更されることは考慮されていない ● 分離レベルと整合性 –
SERIALIZABLE: リレーショナルモデルをもっとも忠実に体現 できる。ただしロック多し。 – REPEATABLE-READ: 少し時間が遅れても良いのなら、参照 系処理においてリレーショナルモデルを体現できる。ただ しファントムを除いて。 – READ-COMMITTED: 本当は使うのが難しいんだけど、みんな 分かって使ってるのか・・・ – READ-UNCOMMITTED: 一体何に使うのか。
41.
分離レベルの注意点 ● 製品によって違いがあるんだな、これが。 – 名称が違ったり、
4 つ以上のレベルがあったり – RR でファントムが出ない( SQL 標準上は出るのが正しいけ ど、実際にアプリを作る上ではこっちのほうが好ましい) – RC が読むのはどのデータ? – ロッキングリード vs ノンロッキングリード – RU は本当に性能が高いのか 各製品の実装に 詳しくなろう!
42.
リレーショナルモデルの 恩恵
43.
開発効率が上がる ● クエリの記述がシンプルになる – 単一のクエリで欲しいデータが得られる ●
ループ無し ● 分岐無し – クエリが宣言的に – 論理演算なので結果にゆるぎがない ● データを検査するコードが減る – スキーマがしっかり決まっている – 正規化によって重複が排除される ● 不整合なし!! – 便利な制約やトランザクション – データを検査するコードが減れば、テストも減る
44.
つまり、 デスマーチ回避!!
45.
クエリが効率的になる ● スパゲティクエリ撲滅!! – シンプルなクエリはインデックスが効きやすい –
1 回のクエリで必要なデータが取れる ● クライアント⇔サーバー間のトラフィック減 ● 更新のロジックがシンプルに – 正規化によってデータの所在がひとつに ● 論理的な矛盾をチェックする必要なし – チェックするコード不要=テスト減
46.
つまり、 RDB が真価を発揮!!
47.
デメリットは特に無い ● 道具を正しく使うことのデメリットは何だろう? ● リレーショナルモデルが適用できないデータ – 今扱っているデータがリレーショナルモデルと合わないの なら、リレーショナルモデルを使おうとすると徒労に終わる が、そういうケースはそもそも
RDB を使うべきではない – もともと RDB が必要な領域ではデメリットなし!!
48.
実装について意識する
49.
データモデルは論理的な表現 論理的な表現 = データモデル 物理的な表現
= 実装
50.
実装の例 ● データがテーブルスペースに格納される ● データは高速化のためにメモリ上にキャッシュされる ● インデックスによって高速にアクセスできる ●
オプティマイザが最適な実行計画を立てる ● データがパーティションに分かれている ● データが複数のノードにまたがって複製されている これらは実装であって データモデルではない!
51.
実装について知ることの意義 その1 ● 性能は超重要!! – データモデルを使って表現するだけでは片手落ち ●
満足な性能が出るとは限らない ● 性能が出ないアプリケーションは役に立たない!! – 実装を知り、仕事の量を見積もる ● それぞれの処理は十分に高速なのか ● どのリソースをどれだけ消費するか – I/O 処理 – メモリ – CPU ● アーキテクチャから推測する – ベンチマークするべし!! ● 机上の計算では全てはわからない
52.
実装について知ることの意義 その2 ● 想定通りの動作になるか – SQL
標準 ≠ 実装 ● 製品によって微妙に挙動が異なる ● SQL 標準から逸脱している場合もあり ● 実装を知っておくことは重要 – テスト重要 ● 想定通りになるかどうかは実行してみれば分かる
53.
実装と理論の混同 ダメ、ゼッタイ。 ● 実装はデータモデルの一部ではない ● 理論と実装は別々に考える – 論理データの設計はデータモデルに沿って行う –
データモデルの要求を満たせるように実装を考える ● すなわち、設計する順序は論理設計>物理設計
54.
まとめ
55.
結論:なぜ、今 リレーショナルモデルなのか ● リレーショナルモデルは古くからある技術 – エキサイティングな要素は・・・ない!! –
実践できていないのに現場では蔑ろに – 巷にあふれるあやふやな情報 ● リレーショナルモデルを知ろう – 道具を使うには、使い方を理解する必要がある – 使い方を知ることで、正しい用途も見えてくる – 続きは本で ● リレーショナルモデルは変わらない!! – 流行り・廃りで理論が変わるわけではない – 代替の理論なし。今後も世の中には必要!!
56.
Q&Aご静聴ありがとうございました。
Download now