Database

    [오류해결] MariaDB errno: 150 "Foreign key constraint is incorrectly formed"

    [오류해결] MariaDB errno: 150 "Foreign key constraint is incorrectly formed"

    MariaDB에 외래키를 적용하다가 errno: 150 "Foreign key constraint is incorrectly formed" 이러한 오류가 날 경우가 있습니다. 오류가 나는 이유는 외래키와 메인키 컬럼의 설정이 제대로 일치하지 않아서 나는 경우입니다. 이때 확인해야 할 순서입니다. 1) 순서 1. 데이터에 타입이 같은지? 메인키가 INT면 외래키도 INT여야 합니다. 2. 메인키와 외래키 모두 NOT NULL 체크가 되어 있는지? 3. 참조하는 키(Reference Key)가 메인키 혹은 유니크 키로 되어 있는지? 여기까지하고 안되는 경우엔 문법이 틀리거나 올바르지 않은 테이블의 컬럼을 바라보는 경우가 많습니다! 2) 결과 LoadType을 정의한 LoadType이라는 테이블과 LoadTy..

    [MySQL] jdbc Insert AutoIncrement 값 가져오기

    [MySQL] jdbc Insert AutoIncrement 자동증가 값 가져오기 MySQL 데이터베이스에 jdbc를 이용해서 Insert하는 쿼리를 작성할 때, PK값이 AutoIncrement로 되어 있는데, 이 자동 증가된 값을 코드 상에서 사용해야 할 때가 있습니다. 이럴 때, PreparedStatement 객체에서 쿼리를 실행하고 난 후, getGeneratedKeys()함수로 ResultSet에 결과 키 값을 저장하면 AutoIncrement 값을 가져올 수가 있습니다. 1. 실행코드 public void RuleConvertDatabaseInit() { try { conn = DriverManager.getConnection( DatabaseConfig.driverTag + Database..

    [Database] ODS(Operational Data Store)란?

    [Database] ODS(Operational Data Store)란?

    ODS(Operational Data Store : 운영 데이터 스토어) 먼저, 엔터프라이즈 데이터웨어 하우스(EDW)는 데이터의 원천적 소스로서 사용되어지며, 운영 데이터 저장소(ODS)는 의사 결정 지원 측면에서 EDW를 보완하는 요소로 사용되는데, 주로 운영보고(Report), 제어, 의사 결정, 데이터에 대한 추가 작업을 위한 여러 소스의 데이터를 통합 하도록 설계된 데이터베이스로 사용됩니다. 보통 운영계 시스템의 데이터는 트랜잭션을 중심으로 설계되어 있기 때문에, 운영계 시스템 데이터를 대상으로 데이터 분석을 진행할 경우 효용성이 매우 떨어집니다. 그래서 데이터 분석을 위한 DW(Data Warehouse)를 설계하고, 그곳에서 데이터를 보관하게 됩니다. ODS는 DW로 데이터를 저장하기 전에,..

    [UML] 유스케이스 다이어그램(Usecase Diagram)

    [UML] 유스케이스 다이어그램(Usecase Diagram)

    [UML] 유스케이스 다이어그램(Usecase Diagram) 시스템과 사용자의 상호작용을 다이어그램으로 표현한 것으로, 사용자의 관점에서 시스템의 서비스, 기능, 외부와의 관계에 대해서 다이어그램으로 표현한 것을 말한다. 사용자(액터)가 시스템 내부에 있는 기능 중에 어떤 기능을 사용할 수 있는지를 나타내는 것으로 사용자와 시스템 사이의 관계를 간략하게 표현할 수 있는 장점이 있다. 1. 유스케이스 구성요소(Component) 유스케이스 다이어그램의 구성요소로 시스템, 액터, 유스케이스, 관계로 구성되어 있다. 2. 시스템(System Scope) 현재 개발할 프로그램을 나타낸다. 프라이머리 액터와 세컨더리 액터 사이의 사각형으로 표기한다. 3. 액터(actor) 시스템 외부에 존재하며 시스템과 상호작..

    [MySQL] Workbench 다이어그램 그리는 방법(EER Diagram)

    [MySQL] Workbench 다이어그램 그리는 방법(EER Diagram)

    [MySQL] Workbench 다이어그램 그리는 방법(EER Diagram) MySQL 데이터베이스를 사용할 때 기본적으로 제공되는 GUI인 Workbench에서 자신이 생성한 데이터베이스의 다이어그램을 확인하고 싶을 때가 있습니다. 직관적이니깐요. WorkBench에서 이를 지원해주는데 EER Diagram을 보는 방법은 간단합니다. 1. Database - Reverse Engineer... 클릭 2. 현재 데이터베이스와 IP주소, Port, User를 확인하고 Next 데이터베이스에 로그인이 되어 있는 상태라면 자동적으로 입력 칸이 채워집니다. 혹시 비워져 있을 경우엔 데이터베이스의 정보와 알맞게 넣어주신 후 Next를 진행하면 됩니다. 3. Next DB 연결이 잘 되었으니 Next. 4. 스키..

    [Java] Hibernate Database 연결 방법

    [Java] Hibernate Database 연결 방법

    하이버네이트 데이터베이스 연결 방법 JBossTool이 기본적으로 설정되어 있다는 전제하의 방법이다. JBossTool 설치 방법은 아래 링크를 참고하길 바란다. https://narup.tistory.com/7?category=880965 JBoss Tool 다운로드 및 Hibernate 초기 구성 설정 방법 하이버네이트는 자바 기반의 ORM (Object Relationship Mapper)이다. 데이터베이스에서 테이블을 읽어와 자바 객체와 RDBMS의 ROW를 서로 매핑해주는 도구이다. Mybatis를 이용해서 이클립스에 database를 연동하.. narup.tistory.com 1) 하이버네이트 Configuration file 세팅 프로젝트 우클릭 – New – cfg.xml 파일 클릭 src..

    [데이터베이스 이론] ER 모델 - 개념적 모델링

    [데이터베이스 이론] ER 모델 - 개념적 모델링

    데이터베이스 이론 -ER 모델 ER 모델 (Entity-Relationship model) 은 데이터베이스를 디자인하기 위해 이용되는 모델링 기법으로, 데이터베이스에 대한 요구 사항을 그래픽적으로 표현하는 방법이다. 요구사항으로부터 얻어낸 정보들을 개체(Entity), 애트리뷰트(Attribute), 관계성(Relation)으로 기술하는 데이터 모델을 말한다. ER 모델에서는 데이터베이스에 저장되는 데이터들을 추상화하여 나타내기 때문에 특정 DBMS 및 하드웨어에 독립적으로 데이터베이스의 구조를 나타낼 수 있다. 개체( Entity ) 개체란 단독으로 존재하는 객체를 의미하며, 동일한 객체는 존재하지 않는다. 예를 들어, 학생 정보가 학번, 이름, 학년이 있을 때, 3개의 정보가 모두 같은 학생이 오직 ..

    [UML] 클래스 다이어그램(Class Diagram) 정리

    [UML] 클래스 다이어그램(Class Diagram) 정리

    UML 다이어그램이란? Unified Modeling Language의 약어. 수학적인 문법과 구성으로 이뤄진 프로그래밍 언어와는 달리 UML은 모델링 언어이다. 다시말해 설계도를 그리기 위한 언어라는것. 학교다닐때 실과나 기술시간에 간단한 건물 도면 기호에 대해 배운 기억이 있다면, 그런 건축 도면과 유사하게 정해진 기호로 구조를 설명할 수 있도록 하는 언어라고 보면 된다. [1] 기원은 Rational 사의 Grady Booch, James Rumbaugh에 의해 1994년 10월에 처음 개발에 착수되었다. 이후 1995년 10월에 Unified Method 0.8의 명칭으로 OOPSLA '95에서 발표되었으며, 이후 Ivar Jacobson이 UML 개발에 함께 협력하면서 1996년에 버전 0.9를..

    [MSSQL] MSSQL 설치 오류 sqlncli.msi 올바른 설치 패키지 사본을 사용하여 설치를 다시 시도하십시오.

    [MSSQL] MSSQL 설치 오류 sqlncli.msi 올바른 설치 패키지 사본을 사용하여 설치를 다시 시도하십시오.

    MSSQL Express 2017을 다운받고, MSSQL Management Studio는 2014를 다운받고 DB 테이블을 생성하려 했더니 Server 버전이 다르다고 편집 툴 측에서 오류가 발생했다. 하기야... 서버가 2017버전인데 편집툴이 2014버전이면 오류가 날 만하지. 그래서 MSSQL 2017을 삭제하고 2014를 설치하려 했는데 정말 불편하게도 한 번에 삭제가 다 안 됩니다. 할 수 없이 제어판을 통해서 Server, 편집 툴 모두 제거를 하고 2014버전으로 다시 설치를 하는데 "sqlncli.msi 올바른 설치 패키지 사본을 사용하여 설치를 다시 시도하십시오." 라는 오류가 발생할 경우가 있다. 해결 방법 => 제어판 - 프로그램 추가/제거에서 Microsoft SQL Native ..

    [Java] Hibernate HQL, Cretreia 사용  방법

    [Java] Hibernate HQL, Cretreia 사용 방법

    Hibernate HQL 및 Cretreia 특정 데이터베이스를 조회하는 도구인 Hibernate에서는 HQL과 Creteria를 이용해서 쿼리를 작성해 DB에 접근할 수 있다. 그에 관련하여 주요 사용되는 쿼리와 기능들을 정리한 코드를 첨부했다. Main에 특정 함수를 호출하면 결과를 확인해 볼 수 있다....는 데이터베이스에 같은 컬럼이 있어야겠지만... 기본적인 CRUD와 Where, Group by 등 쿼리들을 정리해보았다. * 소스 코드의 맨 밑에 있는 getAllClasses함수는 특정 패키지 안에 있는 클래스 리스트를 출력해주는 함수로 Java의 Reflection과 함께 사용하면 된다. Database Table 총 4개의 테이블이다. public class Employee private ..