SlideShare a Scribd company logo
1 of 56
Download to read offline
DB
DB
               Jiemamy
         Jiemamy Project /




17-E-1
(2011.02.17)




                 Developers Summit 2011
•
 •       id:daisuke-m
      http://d.hatena.ne.jp/daisuke-m/




 • twitter @daisuke_m
      http://twitter.com/daisuke_m/




Java Jiemamy
            DDD                                 XML
                             Maven
    Scala


                                                Haskell   SQL
                                                             OSGi   GAE

                                                                    ER

                                      Android   Hadoop     Eclipse
• Jiemamy Project
                               Developers Summit 2011
• Jiemamy
•
•
• Jiemamy

            Developers Summit 2011
Agenda

• Jiemamy
• Jiemamy
• Jiemamy
• Jiemamy API

           Developers Summit 2011
•
•
•

•
•                            ...

•                            ...!?

    Developers Summit 2011
• Web          SVN


  DB



        DB




             Developers Summit 2011
•

•   DB




         Developers Summit 2011
• Jiemamy

•


            Developers Summit 2011
Martin Fowler

• Planning Extreme
  Programming

• Refactoring
• Pattern of Enterprise
  Application Architecture
  (PoEAA)




                  Developers Summit 2011
DB

       Evolutional Database Design
                    — Martin Fowler, 2003
http://www.objectclub.jp/community/XP-jp/xp_relate/evodb-jp



    DB


    DB




                                          Developers Summit 2011
Project
•
•
 • Jiemamy
 • maven plugin,
•                API                 β


            Developers Summit 2011
Smart
             Model


 Smart
                                   Smart
Version
Control                            Build
          Developers Summit 2011
A

    Smart Build


      Developers Summit 2011
•
•
 •                                    OS
 •
 • Java
 • DB          AP

•     (automated)                     (documented)



             Developers Summit 2011
Java                      Maven
• Apache Project
• co     pom.xml

    "mvn package"

•


             Developers Summit 2011
•
•
•                   localhost


•
• ...
        Developers Summit 2011
NOT automated
• DB
 CREATE TABLE T_GROUP (
                                 SQL
  ID integer NOT NULL,
  NAME varchar(32) NOT NULL DEFAULT 'default group',
  STATUS integer NOT NULL,
  CREATED_DATE DATE DEFAULT now(),
                                                       DB
  UPDATED_DATE DATE DEFAULT now(),
  DELETED_DATE DATE,
  PRIMARY KEY (ID)
 );
 CREATE TABLE T_USER (
  ID integer NOT NULL,
  NAME varchar(32) NOT NULL DEFAULT 'default user',
  STATUS integer NOT NULL,
  CREATED_DATE DATE DEFAULT now(),
                  (... ...)



                         Developers Summit 2011
•
        1


•1
         documented

• README.txt
         Developers Summit 2011
Jiemamy
• DB
• maven-jiemamy-plugin
• pom                                       DB


•                       DB

• Web                                  DB

•       Ant
              Developers Summit 2011
B
    Smart
Version Control


    Developers Summit 2011
•1                                     1

class Busyo {                             class Dept {
  String name;                              String name;
  // ...                                    // ...
}                                         }

class Emp {                               class Emp {
  String name;                              String name;
  Busyo busyo;                              Dept dept;
}                                         }


                 Developers Summit 2011
rev1000


•        revision      rev1001
    DB
                       rev1002

•
                       rev1003



•                      rev1004



                       rev1005




         Developers Summit 2011
DB
    •
 @Table("HOGE")                                @Table("FOO")
class Foo {                                   class Foo {
  // ...                                        // ...
}                                             }

 CREATE TABLE HOGE                             CREATE TABLE FOO
(                                             (
  ID integer ...                                ID integer ...
);                                            );


                     Developers Summit 2011
•

•



    Developers Summit 2011
Jiemamy
•
•                               ↓

 •
 •

       Developers Summit 2011
Developers Summit 2011
1

DB
                                         3



                                 2

DB
     (E)                     (       )   4

     (R)




           Developers Summit 2011
DB

• SQL
• DB
• ER

        Developers Summit 2011
DB
•                           rev1000

    SQL
                            rev1001



                            rev1002
    ER    (          )
                            rev1003



    …                       rev1004



    DRY                     rev1005




              Developers Summit 2011
C

    Smart Model


      Developers Summit 2011
DRY
    Don't Repeat Yourself.

•
•
•
•

         Developers Summit 2011
1                                1
  •          1



class Emp {              class Dept {
  String name;             String name;
  Dept dept;               List<Emp> members;
}                        }



                 Developers Summit 2011
2
•

Dept tech = new Dept("                    ");
Emp kato = new Emp("                ");
kato.setDept(tech);
tech.addMember(kato);


           Developers Summit 2011
Jiemamy
•      DRY           DB

•       SQL, DB                      (   )


•     XML               →SVN

 •
  •
            Developers Summit 2011
Jiemamy
•       XML

• XML
 •       SCM

• GUI   ER

•        XML
   validation

              Developers Summit 2011
Developers Summit 2011
• DRY
•
 •
 •              documented
• ER    SQL
 •
 •
          Developers Summit 2011
Jiemamy


     Developers Summit 2011
XML…
•                       XML

 •     GUI             ER


•
 • XML Schema
 • XML                                validation

             Developers Summit 2011
Jiemamy
•       ER

 • AmaterasERD, Clay, DBDesigner4,
   ERWin, SI Object Browser, JUDE...


• Jiemamy
 •
 •
            Developers Summit 2011
Demo
 Developers Summit 2011
Jiemamy API
 version 0.3


   Developers Summit 2011
Jiemamy Model                   API    β

• Jiemamy
            Java object


                                  SQL




     Java


        Developers Summit 2011
XML → Java model



•
• InputStream

           Developers Summit 2011
Java model → XML



•      context new

•      JiemamySerializer

• OutputStream
            Developers Summit 2011
Java model → SQL



• SqlExporter   new

•
• exportModel
           Developers Summit 2011
DB → Java model



• DbImporter    new

•
• importModel
           Developers Summit 2011
Javadoc


•
    API

•
          Developers Summit 2011
•
•          (ServletFilter            )

      DB           Web

 • Smart Install Update
•
 •        contribute
            Developers Summit 2011
Developers Summit 2011
Jiemamy
• Smart Build
 • Maven / Ant /
• Smart Version Control
 • SCM
 •
• Smart Model
 •
 • DB       DRY

              Developers Summit 2011
• Jiemamy
•      Jiemamy

 •
 •       v1.0



           Developers Summit 2011
Jiemamy
• v0.0 v0.1
 • v0.0.1...
          release 2007/6/21

 • v0.1.0 release 2008/2/29
 • v0.1.1 release 2008/3/20
• v0.2 release 2009/5/6
 • v0.2.0
• v0.3 release
 • v0.3.0
           Developers Summit 2011
•
•                            http://tricreo.jp/
                             info@tricreo.jp
•
• Jiemamy

            Developers Summit 2011
Any Questions?


Evolutional Database Design...

                     Developers Summit 2011

More Related Content

Similar to DevelopersSummit2011 【17-E-1】 DBも変化せよ - Jiemamy

XFILES, the APEX 4 version - The truth is in there
XFILES, the APEX 4 version - The truth is in thereXFILES, the APEX 4 version - The truth is in there
XFILES, the APEX 4 version - The truth is in thereRoel Hartman
 
Drupal 8 - A Brief Introduction
Drupal 8 - A Brief IntroductionDrupal 8 - A Brief Introduction
Drupal 8 - A Brief IntroductionJeff Geerling
 
Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)Wooga
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Arun Gupta
 
Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Angela Byron
 
From Java to Ruby...and Back
From Java to Ruby...and BackFrom Java to Ruby...and Back
From Java to Ruby...and BackAnil Hemrajani
 
Evolutionary Database Design
Evolutionary Database DesignEvolutionary Database Design
Evolutionary Database DesignAndrei Solntsev
 
Python - A Comprehensive Programming Language
Python - A Comprehensive Programming LanguagePython - A Comprehensive Programming Language
Python - A Comprehensive Programming LanguageTsungWei Hu
 
Rajnish singh(presentation on oracle )
Rajnish singh(presentation on  oracle )Rajnish singh(presentation on  oracle )
Rajnish singh(presentation on oracle )Rajput Rajnish
 
Best practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini PatilBest practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini PatilRoopa Nadkarni
 
Drupal 8 introduction
Drupal 8 introductionDrupal 8 introduction
Drupal 8 introductionAditya Ghan
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloudlennartkats
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's ArchitectureTony Tam
 
Java keynote preso
Java keynote presoJava keynote preso
Java keynote presoArtur Alves
 
CI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page AppsCI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page AppsMike North
 
Ruby on Rails : 簡介與入門
Ruby on Rails : 簡介與入門Ruby on Rails : 簡介與入門
Ruby on Rails : 簡介與入門Wen-Tien Chang
 

Similar to DevelopersSummit2011 【17-E-1】 DBも変化せよ - Jiemamy (20)

Lift Introduction
Lift IntroductionLift Introduction
Lift Introduction
 
XFILES, the APEX 4 version - The truth is in there
XFILES, the APEX 4 version - The truth is in thereXFILES, the APEX 4 version - The truth is in there
XFILES, the APEX 4 version - The truth is in there
 
Drupal 8 - A Brief Introduction
Drupal 8 - A Brief IntroductionDrupal 8 - A Brief Introduction
Drupal 8 - A Brief Introduction
 
Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014
 
Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8
 
Ow
OwOw
Ow
 
From Java to Ruby...and Back
From Java to Ruby...and BackFrom Java to Ruby...and Back
From Java to Ruby...and Back
 
Evolutionary Database Design
Evolutionary Database DesignEvolutionary Database Design
Evolutionary Database Design
 
Python - A Comprehensive Programming Language
Python - A Comprehensive Programming LanguagePython - A Comprehensive Programming Language
Python - A Comprehensive Programming Language
 
Rajnish singh(presentation on oracle )
Rajnish singh(presentation on  oracle )Rajnish singh(presentation on  oracle )
Rajnish singh(presentation on oracle )
 
Best practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini PatilBest practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini Patil
 
Drupal 8 introduction
Drupal 8 introductionDrupal 8 introduction
Drupal 8 introduction
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloud
 
遇見 Ruby on Rails
遇見 Ruby on Rails遇見 Ruby on Rails
遇見 Ruby on Rails
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's Architecture
 
Java keynote preso
Java keynote presoJava keynote preso
Java keynote preso
 
CI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page AppsCI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page Apps
 
Ruby on Rails : 簡介與入門
Ruby on Rails : 簡介與入門Ruby on Rails : 簡介與入門
Ruby on Rails : 簡介與入門
 
JS Essence
JS EssenceJS Essence
JS Essence
 

More from 都元ダイスケ Miyamoto

認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio都元ダイスケ Miyamoto
 
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019都元ダイスケ Miyamoto
 
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDayマイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay都元ダイスケ Miyamoto
 
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)都元ダイスケ Miyamoto
 
20170312 F.K様向け ライフパートナーM.M様のご提案
20170312 F.K様向け ライフパートナーM.M様のご提案20170312 F.K様向け ライフパートナーM.M様のご提案
20170312 F.K様向け ライフパートナーM.M様のご提案都元ダイスケ Miyamoto
 
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解都元ダイスケ Miyamoto
 
マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016都元ダイスケ Miyamoto
 
Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座都元ダイスケ Miyamoto
 
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda都元ダイスケ Miyamoto
 
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05都元ダイスケ Miyamoto
 
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編都元ダイスケ Miyamoto
 
20121206 VOYAGE LT - 名前重要って言うけどさ
20121206 VOYAGE LT - 名前重要って言うけどさ20121206 VOYAGE LT - 名前重要って言うけどさ
20121206 VOYAGE LT - 名前重要って言うけどさ都元ダイスケ Miyamoto
 
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回都元ダイスケ Miyamoto
 
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategyjava-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy都元ダイスケ Miyamoto
 

More from 都元ダイスケ Miyamoto (20)

認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
 
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019
 
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDayマイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
 
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)
 
AWSクラウドデータストレージ総論
AWSクラウドデータストレージ総論AWSクラウドデータストレージ総論
AWSクラウドデータストレージ総論
 
20170312 F.K様向け ライフパートナーM.M様のご提案
20170312 F.K様向け ライフパートナーM.M様のご提案20170312 F.K様向け ライフパートナーM.M様のご提案
20170312 F.K様向け ライフパートナーM.M様のご提案
 
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解
 
マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016
 
Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座
 
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
 
体で覚えるSQS! DEVIO-MTUP11-TOKYO-007
体で覚えるSQS! DEVIO-MTUP11-TOKYO-007体で覚えるSQS! DEVIO-MTUP11-TOKYO-007
体で覚えるSQS! DEVIO-MTUP11-TOKYO-007
 
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
 
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
 
20130516 cm課外授業8-aws
20130516 cm課外授業8-aws20130516 cm課外授業8-aws
20130516 cm課外授業8-aws
 
20121215 DevLOVE2012 Mahout on AWS
20121215 DevLOVE2012 Mahout on AWS20121215 DevLOVE2012 Mahout on AWS
20121215 DevLOVE2012 Mahout on AWS
 
20121206 VOYAGE LT - 名前重要って言うけどさ
20121206 VOYAGE LT - 名前重要って言うけどさ20121206 VOYAGE LT - 名前重要って言うけどさ
20121206 VOYAGE LT - 名前重要って言うけどさ
 
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回
 
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategyjava-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy
 
2009-11-20 DevLOVE 2009 DB勉強会
2009-11-20 DevLOVE 2009 DB勉強会2009-11-20 DevLOVE 2009 DB勉強会
2009-11-20 DevLOVE 2009 DB勉強会
 
Seasar Conference 2009 White - DI
Seasar Conference 2009 White - DISeasar Conference 2009 White - DI
Seasar Conference 2009 White - DI
 

Recently uploaded

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 

Recently uploaded (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 

DevelopersSummit2011 【17-E-1】 DBも変化せよ - Jiemamy

  • 1. DB DB Jiemamy Jiemamy Project / 17-E-1 (2011.02.17) Developers Summit 2011
  • 2. • • id:daisuke-m http://d.hatena.ne.jp/daisuke-m/ • twitter @daisuke_m http://twitter.com/daisuke_m/ Java Jiemamy DDD XML Maven Scala Haskell SQL OSGi GAE ER Android Hadoop Eclipse • Jiemamy Project Developers Summit 2011
  • 3. • Jiemamy • • • Jiemamy Developers Summit 2011
  • 4. Agenda • Jiemamy • Jiemamy • Jiemamy • Jiemamy API Developers Summit 2011
  • 5. • • • • • ... • ...!? Developers Summit 2011
  • 6. • Web SVN DB DB Developers Summit 2011
  • 7. • • DB Developers Summit 2011
  • 8. • Jiemamy • Developers Summit 2011
  • 9. Martin Fowler • Planning Extreme Programming • Refactoring • Pattern of Enterprise Application Architecture (PoEAA) Developers Summit 2011
  • 10. DB Evolutional Database Design — Martin Fowler, 2003 http://www.objectclub.jp/community/XP-jp/xp_relate/evodb-jp DB DB Developers Summit 2011
  • 11. Project • • • Jiemamy • maven plugin, • API β Developers Summit 2011
  • 12. Smart Model Smart Smart Version Control Build Developers Summit 2011
  • 13. A Smart Build Developers Summit 2011
  • 14. • • • OS • • Java • DB AP • (automated) (documented) Developers Summit 2011
  • 15. Java Maven • Apache Project • co pom.xml "mvn package" • Developers Summit 2011
  • 16. • • • localhost • • ... Developers Summit 2011
  • 17. NOT automated • DB CREATE TABLE T_GROUP ( SQL ID integer NOT NULL, NAME varchar(32) NOT NULL DEFAULT 'default group', STATUS integer NOT NULL, CREATED_DATE DATE DEFAULT now(), DB UPDATED_DATE DATE DEFAULT now(), DELETED_DATE DATE, PRIMARY KEY (ID) ); CREATE TABLE T_USER ( ID integer NOT NULL, NAME varchar(32) NOT NULL DEFAULT 'default user', STATUS integer NOT NULL, CREATED_DATE DATE DEFAULT now(), (... ...) Developers Summit 2011
  • 18. 1 •1 documented • README.txt Developers Summit 2011
  • 19. Jiemamy • DB • maven-jiemamy-plugin • pom DB • DB • Web DB • Ant Developers Summit 2011
  • 20. B Smart Version Control Developers Summit 2011
  • 21. •1 1 class Busyo { class Dept { String name; String name; // ... // ... } } class Emp { class Emp { String name; String name; Busyo busyo; Dept dept; } } Developers Summit 2011
  • 22. rev1000 • revision rev1001 DB rev1002 • rev1003 • rev1004 rev1005 Developers Summit 2011
  • 23. DB • @Table("HOGE") @Table("FOO") class Foo { class Foo { // ... // ... } } CREATE TABLE HOGE CREATE TABLE FOO ( ( ID integer ... ID integer ... ); ); Developers Summit 2011
  • 24. • • Developers Summit 2011
  • 25. Jiemamy • • ↓ • • Developers Summit 2011
  • 27. 1 DB 3 2 DB (E) ( ) 4 (R) Developers Summit 2011
  • 28. DB • SQL • DB • ER Developers Summit 2011
  • 29. DB • rev1000 SQL rev1001 rev1002 ER ( ) rev1003 … rev1004 DRY rev1005 Developers Summit 2011
  • 30. C Smart Model Developers Summit 2011
  • 31. DRY Don't Repeat Yourself. • • • • Developers Summit 2011
  • 32. 1 1 • 1 class Emp { class Dept { String name; String name; Dept dept; List<Emp> members; } } Developers Summit 2011
  • 33. 2 • Dept tech = new Dept(" "); Emp kato = new Emp(" "); kato.setDept(tech); tech.addMember(kato); Developers Summit 2011
  • 34. Jiemamy • DRY DB • SQL, DB ( ) • XML →SVN • • Developers Summit 2011
  • 35. Jiemamy • XML • XML • SCM • GUI ER • XML validation Developers Summit 2011
  • 37. • DRY • • • documented • ER SQL • • Developers Summit 2011
  • 38. Jiemamy Developers Summit 2011
  • 39. XML… • XML • GUI ER • • XML Schema • XML validation Developers Summit 2011
  • 40.
  • 41. Jiemamy • ER • AmaterasERD, Clay, DBDesigner4, ERWin, SI Object Browser, JUDE... • Jiemamy • • Developers Summit 2011
  • 43. Jiemamy API version 0.3 Developers Summit 2011
  • 44. Jiemamy Model API β • Jiemamy Java object SQL Java Developers Summit 2011
  • 45. XML → Java model • • InputStream Developers Summit 2011
  • 46. Java model → XML • context new • JiemamySerializer • OutputStream Developers Summit 2011
  • 47. Java model → SQL • SqlExporter new • • exportModel Developers Summit 2011
  • 48. DB → Java model • DbImporter new • • importModel Developers Summit 2011
  • 49. Javadoc • API • Developers Summit 2011
  • 50. • • (ServletFilter ) DB Web • Smart Install Update • • contribute Developers Summit 2011
  • 52. Jiemamy • Smart Build • Maven / Ant / • Smart Version Control • SCM • • Smart Model • • DB DRY Developers Summit 2011
  • 53. • Jiemamy • Jiemamy • • v1.0 Developers Summit 2011
  • 54. Jiemamy • v0.0 v0.1 • v0.0.1... release 2007/6/21 • v0.1.0 release 2008/2/29 • v0.1.1 release 2008/3/20 • v0.2 release 2009/5/6 • v0.2.0 • v0.3 release • v0.3.0 Developers Summit 2011
  • 55. • • http://tricreo.jp/ info@tricreo.jp • • Jiemamy Developers Summit 2011
  • 56. Any Questions? Evolutional Database Design... Developers Summit 2011