SlideShare une entreprise Scribd logo
1  sur  57
Télécharger pour lire hors ligne
データベース
第11回
データベースとプログラム
1
2015年6⽉18⽇(⽊) 7・8時限
担当:奥 健太
これから学習する内容
2
 データベース設計について学ぶ
CREATE DATABASE
CREATE TABLE
データベース設計
エンドユーザ
結果
データベース
問合せ(クエリ)
データベース
アプリケーション
要求
応答
復習
データベース設計編での学習⽬標
3
 基礎となるデータモデルを理解する
 データベース設計の⽅法を理解する
 データの冗⻑性と不整合問題の解消⽅法を理解する
データベースプログラミングの⽅法を理
解する
データベース設計編
回 ⽇付 テーマ
8 5/28 関係データモデルと関係代数
9 6/4 データベース設計
10 6/11 正規化
11 6/18 データベースとプログラム
4
JDBCによる
データベース操作
サンプルプログラム
簡易つぶやきアプリの開発
本⽇の講義で学ぶこと
5
データベースを⽤いた
さまざまなWebアプリケーション
6
JDBC (Java DataBase Connectivity)
Javaのプログラムからデータベースを操作す
るためのAPI
– JDBCを使⽤することで,簡単にデータベース操
作を⾏うプログラムを実装することが可能
– 様々なDBMSに対して,対応させるためのプログ
ラムの修正が少なく済む
7
JDBCを⽤いたデータベース操作のイメージ
8
Javaアプリケーション
JDBC API
Oracle⽤
JDBCドライバ
MySQL⽤
JDBCドライバ
PostgreSQL⽤
JDBCドライバ
Oracle MySQL PostgreSQLDBMS
JDBC
JDBCの主なクラス
9
クラス 説明
Connection データベースとプログラムとの接続を管理するク
ラスである.
Statement データベースに問合せを⾏うためのクラスである.
問合せのためのSQL⽂をこのオブジェクトに渡す
ことで,問合せを実⾏する.
PreparedStatement コンパイル済みのSQLを扱うためのクラスである.
Statementクラスよりも,実⾏速度やセキュリ
ティの⾯で優れている.
ResultSet データベースへの問合せで得られた結果を受け取
るためのクラスである.ResultSetに対して,ロウ
(⾏)とカラム(列)を指定して値を取り出す.
JDBCによるデータベース操作⼿順
1. JDBCドライバの読込み
2. データベースへの接続
3. Statementオブジェクトの⽣成
4. SQL実⾏
5. ResultSetオブジェクトからの結果の取得
6. 例外処理
7. データベースからの切断
10
1. JDBCドライバの読込み
11
Class.forName(driver);
driver : DBを使うためのドライバを指定する
基本構⽂
Class.forName("com.mysql.jdbc.Driver");例
Class.forNameメソッドでJDBCドライバを読み込む
2. データベースへの接続
12
Connection conn =
DriverManager.getConnection(strConn);
conn : ⽣成されたConnectionオブジェクト
strConn : 接続先データベースの情報
基本構⽂
Connection conn =
DriverManager.getConnection("jdbc:mysql//loca
lhost/database?user=user&password=password");
例
接続先DB ログインユーザ パスワード
getConnectionメソッドでデータベースに接続し,
Connectionオブジェクトを⽣成する
3. Statementオブジェクトの⽣成
13
Statement stmt = conn.createStatement();
conn : Connectionオブジェクト
stmt : ⽣成されたStatementオブジェクト
基本構⽂
Statement stmt = conn.createStatement();
例
 createStatementメソッドでStatementオブジェクトを
⽣成する
4. SQLの実⾏
14
 StatementオブジェクトのメソッドでSQLを実⾏する
メソッド 主な⽤途 戻り値
executeQuery SELECT ResultSet(問合せ結果)
executeUpdate INSERT,
UPDATE,
DELETE
整数(処理されたデータ
の件数)
4.(a) SELECT⽂の実⾏
15
ResultSet rs = stmt.executeQuery(sql);
rs : ResultSetオブジェクト(SQLの問合せ結果)
stmt : Statementオブジェクト
sql : 問合せ⽂(SELECT⽂)
基本構⽂
例
ResultSet rs = stmt.executeQuery(
"SELECT * FROM student;");
 StatementオブジェクトのexecuteQueryメソッド
を実⾏する
 実⾏結果は,ResultSetオブジェクトの形で受け取る
4.(b) INSERT⽂, UPDATE⽂,
DELETE⽂の実⾏
16
int re = stmt.executeUpdate(sql);
re : INSERT⽂,UPDATE⽂,DELETE⽂の場合は⾏数
stmt : Statementオブジェクト
sql : 問合せ⽂(SELECT⽂以外)
基本構⽂
例 int re = stmt.executeUpdate(
"INSERT INTO student VALUES(...);");
 StatementオブジェクトのexecuteUpdateメソッド
を実⾏する
 実⾏した結果として,処理されたデータの件数を受け取る
5. ResultSetオブジェクトからの
結果の取得
17
 ResultSetオブジェクトに対し,カーソルを操作することで
データを取り出す
1東野圭吾 57
2宮部みゆき 54
3村上春樹 66
id name age
SELECT⽂で指定された列
カーソル
SELECT⽂の条
件によって抽出
された⾏
"SELECT id, name, age FROM writer;"を実⾏したとき
のResultSetオブジェクトの例
5. ResultSetオブジェクトからの
結果の取得(例)
18
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
System.out.println(id + ", " + name
+ ", " + age);
}
 ⼀つずつ次の⾏に移動してその⾏のデータを取り出す
5. ResultSetオブジェクトのメソッド
19
カーソル操作に関する主なメソッド
メソッド 説明
next() カーソルを現在の位置から1⾏下に移動する
first() カーソルをこのResultSetオブジェクト内の先頭⾏に移動する
last() カーソルをこのResultSetオブジェクト内の最終⾏に移動する
メソッド 説明
getString(int) 現在⾏にある指定された列の値をString型として取得する
getInt(int) 現在⾏にある指定された列の値をint型として取得する
getByte(int) 現在⾏にある指定された列の値をbyte型として取得する
getRow() 現在の⾏の番号を取得する
カーソルが指し⽰す⾏の値の取出しに関する主なメソッド
6. 例外処理
20
 tryブロックで発⽣したすべての例外は次のcatchブロック
でキャッチされ,例外処理を⾏う.
try {
...
rs = stmt.executeQuery(sql);
...
} catch (Exception e) {
e.printStackTrace();
}
7. データベースからの切断
21
rs.close();
stmt.close();
conn.close();
rs : ResultSetオブジェクト
stmt : Statementオブジェクト
conn : Connectionオブジェクト
基本構⽂
 ResultSetオブジェクト,Statementオブジェクト,
Connectionオブジェクトの各closeメソッドを呼び出し,
データベースからの切断処理を実⾏する
JDBCによるデータベース操作⼿順
まとめ
1. JDBCドライバの読込み
2. データベースへの接続
3. Statementオブジェクトの⽣成
4. SQL実⾏
5. ResultSetオブジェクトからの結果の取得
6. 例外処理
7. データベースからの切断
22
サンプルプログラム
簡易つぶやきアプリMutter
23
簡易つぶやきアプリMutter
 Twitter (https://twitter.com/)等でおなじみのつ
ぶやきアプリの簡易版
 つぶやきの投稿や削除,検索,タイムライン表⽰な
どの機能を備える
 Webアプリケーションではないため,基本的には
ローカルのユーザが独り⾔をつぶやくという仕様
 mutter = 「ぶつぶつとつぶやく」
24
Mutterの機能
タイムライン表⽰
つぶやきの投稿
つぶやきの削除
つぶやきの検索
つぶやきの引⽤
お気に⼊りの登録
お気に⼊りの⼀覧表⽰
25
本講義で扱う範囲
準備:データベースの準備
26
データベースの構築とユーザ登録
27
CREATE DATABASE mutdb
DEFAULT CHARACTER SET UTF8;
MySQLにrootでログインし,
mutdbという名前でデータベースを作成する
GRANT ALL ON mutdb.*
TO 'oku'@'localhost' IDENTIFIED BY 'uko';
mutdbに対してユーザを登録する
(ユーザ名およびパスワードは任意)
省略可であるが,⽇本語を使⽤する場合は書いた⽅が良い
テーブルの作成
CREATE TABLE mutter (
id INT AUTO_INCREMENT,
text TEXT,
created_at TIMESTAMP,
PRIMARY KEY(id)
);
登録したユーザでログインした状態で,mutdbを選択し,
mutter(id, text, created_at)テーブルを作成する
AUTO_INCREMENT制約:
新しいデータが登録されると,⾃動で連番が挿⼊される
TIMESTAMP型:
データ登録時または更新時に⾃動的に現在時刻が挿⼊される
USE mutdb;
つぶやきの登録
29
INSERT INTO mutter SET text = 'DB講義なう';
INSERT INTO mutter SET text = '敵は本能寺にあり';
INSERT INTO mutter SET text = '是非に及ばず';
INSERT INTO mutter SET text = '夢幻の如くなり';
INSERT INTO mutter SET text = '御武運が開けましたな';
mutterテーブルに適当なつぶやきを登録する
※id, created_atの値を省略すると,⾃動的に値が登録される
SET NAMES cp932;
※⽇本語を含むタプルを登録する場合は,事前にこのコマン
ドを実⾏しておくこと.実⾏を忘れると,⽇本語が正しく表
⽰されないことがある.
つぶやきの確認
30
mutterテーブルにつぶやきが正常に登録されているか確認する
SELECT * FROM mutter;
データベースへの接続・切断
31
ひな形プログラム
32
import java.io.*;
import java.sql.*;
public class Mutter {
private Connection conn = null;
private Statement stmt = null;
public void readDriver() {...}
public void connectDb() {...}
public void closeDb() {...}
public static void main(String[] args) {...}
}
*プログラムの全貌はmanaba+R上の"Mutter.java"を参照のこと.そこには
コメントも記載している.
JDBCドライバの読込み
33
public void readDriver() {
String driver = "com.mysql.jdbc.Driver";
try {
Class.forName(driver);
} catch (ClassNotFoundException ex) {
System.out.println("ERROR: Class not found");
System.out.println(ex);
}
}
34
public void connectDb() {
String database = "mutdb";
String user = "oku";
String password = "uko";
try {
String str = "jdbc:mysql://localhost/" + database
+ "?user=" + user
+ "&password=" + password
+ "&useUnicode=true&characterEncoding=utf-8";
this.conn = DriverManager.getConnection(str);
this.stmt = conn.createStatement();
} catch (Exception ex) {
System.out.println("ERROR: no connection");
System.out.println(ex);
this.closeDb();
}
}
DBへの接続
DBからの切断
35
public void closeDb() {
try {
this.stmt.close();
} catch (Exception ex) {
System.out.println("ERROR: DB close error");
System.out.println(ex);
}
try {
this.conn.close();
} catch (Exception ex) {
System.out.println("ERROR: DB close error");
System.out.println(ex);
}
}
メイン関数
36
public static void main(String[] args) {
Mutter mutter = new Mutter();
mutter.readDriver();
mutter.connectDb();
try {
boolean loop = true;
while (loop) {...} // メインループ
}
mutter.closeDb();
}
Javaプログラムの実⾏
37
c:¥>javac Mutter.java
c:¥>java Mutter
コマンドプロンプトなどから,次のコマンドを実⾏する
("Mutter.java"が"C:¥"にある場合)
タイムライン表⽰プログラム:show()
38
SQL⽂の⽣成
39
public void show() {
try {
String sql = "SELECT * FROM mutter ORDER BY created_at DESC;";
System.out.println("SQL: " + sql);
SQLの実⾏
40
ResultSet rs = this.stmt.executeQuery(sql);
結果の取得
41
while(rs.next()) {
int id = rs.getInt("id");
String text = rs.getString("text");
String timestamp = rs.getString("created_at");
System.out.println(id + ", " + timestamp + ", " + text);
}
例外処理
42
} catch (SQLException e) {
String strSqlState = e.getSQLState();
System.out.println("ERROR: SQL error: " + strSqlState + "¥n");
System.out.println(e);
} catch(Exception ex) {
System.out.println("ERROR: Program error");
System.out.println(ex);
}
}
つぶやき登録プログラム:submit()
43
SQL⽂の⽣成
44
public void submit() {
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("今なにしてる?>");
String text = br.readLine();
String sql= "INSERT INTO mutter SET text = '" + text + "';";
System.out.println("SQL: " + sql);
SQLの実⾏
45
int rs = stmt.executeUpdate(sql);
System.out.println("つぶやきを登録しました");
つぶやき削除プログラム:delete()
46
SQL⽂の⽣成:
削除対象のつぶやきを表⽰
47
public void delete() {
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("削除したいつぶやきIDを入力してください>");
int targetId = Integer.parseInt(br.readLine());
String sql= "SELECT * FROM mutter WHERE id = " + targetId + ";";
SQLの実⾏と結果の取得:
削除対象のつぶやきを表⽰
48
ResultSet rs = stmt.executeQuery(sql);
int count = 0;
while(rs.next()) {
count++;
int id = rs.getInt("id");
String text = rs.getString("text");
String timestamp = rs.getString("created_at");
System.out.println("該当のつぶやきは下記のとおりです");
System.out.println(id + ", " + timestamp + ", " + text);
}
SQL⽂の⽣成と実⾏:
つぶやきを削除
49
if (count == 0) {
System.out.println("該当のつぶやきは見つかりませんでした");
} else {
System.out.println("このつぶやきを削除しますか?(Y/N)");
BufferedReader br2 = new BufferedReader(
new znputStreamReader(System.in));
String yn = br2.readLine();
if (yn.equals("Y") || yn.equals("y")) {
String sql2 = "DELETE FROM mutter WHERE id = " + targetId + ";";
System.out.println("==== ==== ==== ==== ==== ==== ==== ====");
System.out.println("SQL: " + sql2);
System.out.println("==== ==== ==== ==== ==== ==== ==== ====");
System.out.println();
int rs2 = stmt.executeUpdate(sql2);
System.out.print("つぶやきを削除しました¥n");
}
}
Mutterの機能
タイムライン表⽰
つぶやきの投稿
つぶやきの削除
つぶやきの検索
つぶやきの引⽤
お気に⼊りの登録
お気に⼊りの⼀覧表⽰
50
本講義で扱う範囲
つぶやき検索プログラム
51
つぶやき引⽤プログラム
52
お気に⼊り登録と⼀覧表⽰プログラム
53
JDBCによる
データベース操作
サンプルプログラム
簡易つぶやきアプリの開発
まとめ
54
まとめ
1. JDBCドライバの読込み
2. データベースへの接続
3. Statementオブジェクトの⽣成
4. SQL実⾏
5. ResultSetオブジェクトからの結果の取得
6. 例外処理
7. データベースからの切断
タイムライン表⽰
つぶやきの投稿
つぶやきの削除
つぶやきの検索
つぶやきの引⽤
お気に⼊りの登録
お気に⼊りの⼀覧表⽰
⾃分で実装してみよう
本⽇学習したキーワード
〜データベース設計編〜
56
1事実1箇所 繰返しグループ 第三正規形
3層スキーマモデル 更新不整合問題 第⼆次正規化
ER図 削除不整合 第⼆正規形
E-Rモデル 差集合演算 タプル(組)
JDBC θ結合演算 直積演算
インスタンス θ⽐較可能 等結合演算
カーディナリティ 次数 導出属性
概念スキーマ ⾃然結合演算 ドメイン(定義域)
概念設計 実体 内部スキーマ
概念データモデル 射影演算 濃度
外部スキーマ 修正不整合 ⾮正規形
関係(リレーション) 商演算 物理設計
関係スキーマ 推移関数従属性 物理的データ独⽴性
関係代数 選択演算 部分関数従属性
関係データベース(RDB) 挿⼊不整合 論理設計
関係(リレーショナル)
データモデル
属性(アトリビュート) 論理データモデル
関係名 属性値 論理的データ独⽴性
完全関数従属性 第⼀次正規化 和集合演算
関連 第⼀正規形 和両⽴
共通(積)集合演算 第三次正規化
これまでに学習したキーワード
〜データベース設計編〜
57
1事実1箇所 繰返しグループ 第三正規形
3層スキーマモデル 更新不整合問題 第⼆次正規化
ER図 削除不整合 第⼆正規形
E-Rモデル 差集合演算 タプル(組)
JDBC θ結合演算 直積演算
インスタンス θ⽐較可能 等結合演算
カーディナリティ 次数 導出属性
概念スキーマ ⾃然結合演算 ドメイン(定義域)
概念設計 実体 内部スキーマ
概念データモデル 射影演算 濃度
外部スキーマ 修正不整合 ⾮正規形
関係(リレーション) 商演算 物理設計
関係スキーマ 推移関数従属性 物理的データ独⽴性
関係代数 選択演算 部分関数従属性
関係データベース(RDB) 挿⼊不整合 論理設計
関係(リレーショナル)
データモデル
属性(アトリビュート) 論理データモデル
関係名 属性値 論理的データ独⽴性
完全関数従属性 第⼀次正規化 和集合演算
関連 第⼀正規形 和両⽴
共通(積)集合演算 第三次正規化

Contenu connexe

Tendances

Study 20131009
Study 20131009Study 20131009
Study 20131009
fujii_t
 
[D26] データハブとしてのPostgreSQL~9.3で進化した外部テーブル~ by Shigeru Hanada
[D26] データハブとしてのPostgreSQL~9.3で進化した外部テーブル~ by Shigeru Hanada[D26] データハブとしてのPostgreSQL~9.3で進化した外部テーブル~ by Shigeru Hanada
[D26] データハブとしてのPostgreSQL~9.3で進化した外部テーブル~ by Shigeru Hanada
Insight Technology, Inc.
 
Javaにおけるデータシリアライズと圧縮
Javaにおけるデータシリアライズと圧縮Javaにおけるデータシリアライズと圧縮
Javaにおけるデータシリアライズと圧縮
moai kids
 
20120721 tuning slide_share
20120721 tuning slide_share20120721 tuning slide_share
20120721 tuning slide_share
utatu
 

Tendances (15)

データベース入門
データベース入門データベース入門
データベース入門
 
JAWSUG 20191028 (modified)
JAWSUG 20191028 (modified)JAWSUG 20191028 (modified)
JAWSUG 20191028 (modified)
 
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
 
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
 
Study 20131009
Study 20131009Study 20131009
Study 20131009
 
[D26] データハブとしてのPostgreSQL~9.3で進化した外部テーブル~ by Shigeru Hanada
[D26] データハブとしてのPostgreSQL~9.3で進化した外部テーブル~ by Shigeru Hanada[D26] データハブとしてのPostgreSQL~9.3で進化した外部テーブル~ by Shigeru Hanada
[D26] データハブとしてのPostgreSQL~9.3で進化した外部テーブル~ by Shigeru Hanada
 
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
 
データベースシステム論06 - SQL基礎演習1 データの定義と操作
データベースシステム論06 - SQL基礎演習1 データの定義と操作データベースシステム論06 - SQL基礎演習1 データの定義と操作
データベースシステム論06 - SQL基礎演習1 データの定義と操作
 
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
 
Dat009 クラウドでビック
Dat009 クラウドでビックDat009 クラウドでビック
Dat009 クラウドでビック
 
Xslt
XsltXslt
Xslt
 
データを工夫して記録するデータ構造
データを工夫して記録するデータ構造データを工夫して記録するデータ構造
データを工夫して記録するデータ構造
 
Javaにおけるデータシリアライズと圧縮
Javaにおけるデータシリアライズと圧縮Javaにおけるデータシリアライズと圧縮
Javaにおけるデータシリアライズと圧縮
 
20120721 tuning slide_share
20120721 tuning slide_share20120721 tuning slide_share
20120721 tuning slide_share
 
データベーススペシャリスト勉強会スライド
データベーススペシャリスト勉強会スライドデータベーススペシャリスト勉強会スライド
データベーススペシャリスト勉強会スライド
 

Similaire à データベース11 - データベースとプログラム

SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)
Tomoaki Uchida
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
 
SQL Server 2014 In Memory OLTP Overview
SQL Server 2014 In Memory OLTP OverviewSQL Server 2014 In Memory OLTP Overview
SQL Server 2014 In Memory OLTP Overview
Masayuki Ozawa
 
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01
Yusuke Ando
 
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理
土岐 孝平
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
 
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
Makoto Haruyama
 

Similaire à データベース11 - データベースとプログラム (20)

SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)
 
構築手順 Ssis イベントログ取込み 第2版
構築手順 Ssis イベントログ取込み 第2版構築手順 Ssis イベントログ取込み 第2版
構築手順 Ssis イベントログ取込み 第2版
 
いまできるデータ分析を Power BI ではじめよう
いまできるデータ分析を Power BI ではじめよういまできるデータ分析を Power BI ではじめよう
いまできるデータ分析を Power BI ではじめよう
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
 
SQL Server 2014 In Memory OLTP Overview
SQL Server 2014 In Memory OLTP OverviewSQL Server 2014 In Memory OLTP Overview
SQL Server 2014 In Memory OLTP Overview
 
「Entity Framework Coreを使ってみる」 公開用
「Entity Framework Coreを使ってみる」 公開用「Entity Framework Coreを使ってみる」 公開用
「Entity Framework Coreを使ってみる」 公開用
 
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01
 
PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
 
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
 
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
 
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
 
C# Database操作6 SqlDataAdapterを使用したデータの更新-
C# Database操作6  SqlDataAdapterを使用したデータの更新-C# Database操作6  SqlDataAdapterを使用したデータの更新-
C# Database操作6 SqlDataAdapterを使用したデータの更新-
 
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
 
実動するIot&hadoopから学ぶ会_資料
実動するIot&hadoopから学ぶ会_資料実動するIot&hadoopから学ぶ会_資料
実動するIot&hadoopから学ぶ会_資料
 
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
 
C#勉強会 ~ C#9の新機能 ~
C#勉強会 ~ C#9の新機能 ~C#勉強会 ~ C#9の新機能 ~
C#勉強会 ~ C#9の新機能 ~
 
XunitとMoq 公開用
XunitとMoq 公開用XunitとMoq 公開用
XunitとMoq 公開用
 
Webで役立つRDBの使い方
Webで役立つRDBの使い方Webで役立つRDBの使い方
Webで役立つRDBの使い方
 

Plus de Kenta Oku

Plus de Kenta Oku (8)

情報推薦システム入門:講義スライド
情報推薦システム入門:講義スライド情報推薦システム入門:講義スライド
情報推薦システム入門:講義スライド
 
データベース14 - データベース構造とインデックス
データベース14 - データベース構造とインデックスデータベース14 - データベース構造とインデックス
データベース14 - データベース構造とインデックス
 
データベース10 - 正規化
データベース10 - 正規化データベース10 - 正規化
データベース10 - 正規化
 
データベース08 - 関係データモデルと関係代数
データベース08 - 関係データモデルと関係代数データベース08 - 関係データモデルと関係代数
データベース08 - 関係データモデルと関係代数
 
データベース02 - SQL概要
データベース02 - SQL概要データベース02 - SQL概要
データベース02 - SQL概要
 
データベース06 - SQL(VIEW, ALTER, GRANTなど)
データベース06 - SQL(VIEW, ALTER, GRANTなど)データベース06 - SQL(VIEW, ALTER, GRANTなど)
データベース06 - SQL(VIEW, ALTER, GRANTなど)
 
データベース05 - SQL(SELECT:結合,副問合せ)
データベース05 - SQL(SELECT:結合,副問合せ)データベース05 - SQL(SELECT:結合,副問合せ)
データベース05 - SQL(SELECT:結合,副問合せ)
 
データベース04 - SQL(SELECT:基本)
データベース04 - SQL(SELECT:基本)データベース04 - SQL(SELECT:基本)
データベース04 - SQL(SELECT:基本)
 

Dernier

Dernier (6)

東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
 

データベース11 - データベースとプログラム