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

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 

Recently uploaded (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 

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