PC

블로그 이미지

DAVID

'PC'에 해당되는 글 109건

제목 날짜
  • 160725: 92회차 2016.07.25
  • 160722: 91회차 2016.07.22
  • 160721: 90회차 2016.07.21
  • 160720: 89회차 2016.07.20
  • 160719: 88회차 2016.07.19
  • 160718: 87회차 2016.07.18
  • 160715: 86회차 2016.07.15
  • 160714: 85회차 2016.07.14
  • 160713: 84회차 2016.07.13
  • 160712: 83회차1 2016.07.12

160725: 92회차

Programming 2016. 7. 25. 18:18

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것


git merge 하는 법







5. 수업

진도: 

hw: 


6. 할것


Git Shell 안 사용해도

집에 가기 전에 종료해 놓을 것


JUnit 끝내기

'Programming' 카테고리의 다른 글

160727: 94회차  (0) 2016.07.27
160726: 93회차  (0) 2016.07.26
160722: 91회차  (0) 2016.07.22
160721: 90회차  (0) 2016.07.21
160720: 89회차  (0) 2016.07.20
Posted by DAVID

160722: 91회차

Programming 2016. 7. 22. 16:44

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것


오늘은 git의 늪에서 시달렸습니다



5. 수업

진도: 

hw: 


6. 할것



'Programming' 카테고리의 다른 글

160726: 93회차  (0) 2016.07.26
160725: 92회차  (0) 2016.07.25
160721: 90회차  (0) 2016.07.21
160720: 89회차  (0) 2016.07.20
160719: 88회차  (0) 2016.07.19
Posted by DAVID

160721: 90회차

Programming 2016. 7. 21. 13:21

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것



[21] Github 회원 가입, 원격 저장소 생성, Eclipse Github 연결 및 공유

[01] Github 회원 가입 설정, Eclipse Github 연결 및 공유
     - Git: 리누스 토발즈가 개발한 분산  버전관리 프로그램, 리눅스 개발에 사용
     - Github: 원격격으로 소스를 동기화 시키는 서버, 인터넷으로 소스 관리 지원
       Eclipse에서 사용하기 편리하도록 EGit plugin 지원

1. 회원 가입
   - https://github.com  



2. 별명(영어), 이메일주소, 패스워드(alphabet 1자리이상)



3. Free: 무료, 프로젝트 소스 인터넷에 공개, 상용 선택시 비공개 지원







4. 회원가입후 저장소를 생성하기 위해 이메일 인증이 필요함



5. 가입할때 등록한 이메일 로그인 후 버튼이나 링크를 클릭하여 인증한다.
   버튼이나 링크를 클릭하면 아래의 페이지로 이동함.
  
   







6. 저장소 생성
   'test' 저장소 정보 입력
    - Repository name을 Eclipse/STS의 프로젝트명과 동일하게 해주세요.
     프로젝트 소스 공유시 자동으로 저장소를 찾아 업로드됩니다.





8. 'test' 저장소 생성 완료



9. spring/STS  Help-> install new software-> Add 버튼 클릭(생략가능)

Name:EGit
Location : http://download.eclipse.org/egit/updates





10. 설치할 plugin 선택



11. 설치 진행



12. 저작권 동의



13. Spring project 생성

name: test
package: spring.sts.test


15. 프로젝트 공유 : 프로젝트 오른마우스 선택-> Team-> Share Project



14. Git 선택(화면이 출력 안되도 계속 진행)



15. Git Local 저장소 생성(ojt/git 폴더 생성후 선택)

        - Repository : create -> 경로 설정 (workspace 경로는 피하는것을 권장함) -> Finish -> Finish




16 '>' 화살표 모양이 폴더나 파일앞에 생성되며 공유 소스라는 표시가 출력됨.



17. Git서버에 소스 공유-작업 1
    spring_gittest 오른마우스선택-> Team -> Commit...  선택후



18. Github 로그인 정보 입력-작업2



19. Comit: Local(현재 컴퓨터) 저장소에만 저장
      'Commit and Push' 현재 컴퓨터의 Git 서버 및 원격 Github 서버에 저장

 
 

20. 접속 정보 입력 
   URI: 아래 21번 이미지로 확인
   User: 가입할때 계정명
   Password : 가입할때 비번





21 소스 동기화 주소 복사방법1
  
  https://github.com/
 
  



22 소스 동기화 주소 복사방법2




23. 계속진행후 계정 비번 다시 입력후 Finish



24. 계속 진행하여 정상적으로 처리되어 '>'모양이 없어진 상태




25. 서버에 업로드된 소스 확인   





26. home.jsp 소스 수정후 변경된 소스의 서버 저장(Commit)
    - 폴더 Commit시에는 폴더에 파일을 담아서 Commit 함






27. 서버에 업로드된 소스 확인


Git 사용법



git에서 import로 프로젝트 다운받기



[05] 소스 충돌 해결
     - 충돌을 피하기위한 방법
       . 작업 종료후 commit 합니다.
       . 다음날 작업시작시 pull을 실행한후 작업합니다.




1. egit 에서 commit 시의 [rejected - non-fast-forward] 상황 처리 1

   1) project 선택 > Team > Repository> Pull

   -> 서버에있는 다른 내용을 자동으로 병합 
     
   2) 소스 수정 후 저장 (Add to Index 선택)

   3) 파일 선택 [Commit -> Commit and Push] 실행


 
2. egit 에서 commit 시의 [rejected - non-fast-forward] 상황 처리

   1) project 선택 > Team > Repository> Pull

    -> 자동병합이 아니고 아래처럼 비교하면서 서버의 내용 가져올때

      안녕하세요 ~ Hello world! 
      <<<<<<< HEAD        <- 로컬내용
      안녕                         <- 서버내용
      =======
       >>>>>>> branch 'master' of https://github.com/nosqljava/gitblog.git

       충돌파일명에 빨강 마크 있음
 
   2) project 선택 > Team > Synchronize Workspace
     
   3) 에러난 파일 선택하고 [Mark as merged] 선택 후 Synchronize Workspace 닫음.

   4) 충돌 파일 선택 [Commit -> Commit and Push] 실행


3. egit 에서 commit 시의 conflict 해결 방법3
 
   1) 에러 파일 선택 > Team -> Merge Tool

      > 
Copy Current Change from Right to Left, Next Difference 아이콘 클릭

   2) 프로젝트 선택 > Team > Add to Index
 
   3) 프로젝트 선택 > Team > Commit > Commit and Push
 

4. egit 에서 commit 시의 conflict 해결 방법4
 
   1) project 선택 > Team > Synchronize Workspace

   
2) 에러가 발생한 파일 > Copy Current Change from Right to Left, Next Difference 아이콘 클릭
 
   3) 에러난 파일 선택하고 [Mark as merged] 선택

   4) 파일 선택 [Commit -> Commit and Push] 실행


5. 수업

진도: 

hw: 


6. 할것



'Programming' 카테고리의 다른 글

160725: 92회차  (0) 2016.07.25
160722: 91회차  (0) 2016.07.22
160720: 89회차  (0) 2016.07.20
160719: 88회차  (0) 2016.07.19
160718: 87회차  (0) 2016.07.18
Posted by DAVID

160720: 89회차

Programming 2016. 7. 20. 16:15

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것


JoinTest.xml 로 mybatis의 join 보는 중


MyBATIS_jointest.zip


텍스트 파일 첨부 - 4개




5. 수업

진도: 

hw: 


6. 할것



'Programming' 카테고리의 다른 글

160722: 91회차  (0) 2016.07.22
160721: 90회차  (0) 2016.07.21
160719: 88회차  (0) 2016.07.19
160718: 87회차  (0) 2016.07.18
160715: 86회차  (0) 2016.07.15
Posted by DAVID

160719: 88회차

Programming 2016. 7. 19. 13:07

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것





5. 수업

진도: 

hw: 


6. 할것






1. web.xml에 필터 처리 (한글) 가져다 놓는다

<filter>

<filter-name>encodingFilter</filter-name>

<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>UTF-8</param-value>

</init-param>

</filter>


<filter-mapping>

<filter-name>encodingFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>


이거 임! :-)






2. Mybatis 세팅과 DBCP 세팅을 pom.xml에 복사해서 넣는당


<!--MyBatis setting -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.2.2</version>

</dependency>

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis-spring</artifactId>

<version>1.2.0</version>

</dependency>

<!-- DBCP setting -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jdbc</artifactId>

<version>${org.springframework-version}</version>

</dependency>


<dependency>

<groupId>commons-dbcp</groupId>

<artifactId>commons-dbcp</artifactId>

<version>1.4</version>

</dependency>



3. ORACLE JDBC 드라이버도 복사해서 넣는다 - pom.xml에


<!-- Oracle JDBC Driver -->

<dependency>

<groupId>com.oracle</groupId>

<artifactId>ojdbc6</artifactId>

<version>11.1.0.7.0</version>

</dependency>


이게 바로 오류가 뜨는데

이거는 레퍼지토리 세팅도 해줘야 한다



<repositories>

<repository>

<id>oracle</id>

<name>ORACLE JDBC Repository</name>

<url>http://maven.jahia.org/maven2</url>

</repository>

</repositories>



4. root-context.xml에 

p라고 하는 prefix를 올려놓는다


xmlns:p="http://www.springframework.org/schema/p" 


그 뒤에 

<!-- 데이터베이스 접속 설정 --> 

 

<bean id="dataSource" 

destroy-method="close"

class="org.apache.commons.dbcp.BasicDataSource" 

p:driverClassName="oracle.jdbc.driver.OracleDriver" 

p:url="jdbc:oracle:thin:@localhost:1521:XE" 

p:username="soldesk"  

p:password="1234"  

/> 


하고


<!-- MyBatis SQL 실행 클래스  --> 

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

    <property name="dataSource" ref="dataSource" />

    <!-- 아래부분은 매핑할 xml파일이 있는 패키지경로를 설정한다. -->

    <property name="typeAliasesPackage" value="spring.model" />

    <property name="mapperLocations" value="classpath:mybatis/*.xml" />

  </bean>


하고


  <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">

    <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" />

  </bean>


까지 복사해서 넣는다.



통합해서 넣을 때는 



<!-- 데이터베이스 접속 설정 --> 

 

<bean id="dataSource" 

destroy-method="close"

class="org.apache.commons.dbcp.BasicDataSource" 

p:driverClassName="oracle.jdbc.driver.OracleDriver" 

p:url="jdbc:oracle:thin:@localhost:1521:XE"  <- 이 부분의 ip 수정 요망

p:username="soldesk"  <- 이 부분도

p:password="1234"   <- 이 부분도!

/> 



입니다.


src/main/java에

sqlSessionFactory에서 사용하는

spring.model 패키지를 생성할것임!




5. src/main/resources에

mybatis 패키지를 생성함


6. 이건 테스트 코드 만들기 위해

src/test/resources에다가

xml파일을 하나 만든다


7. spring/test/java의

spring.sts.goldstar에다가 jUnitTest 생성해서 넣으면 된다.

전제 조건: DAO와 DTO와 Manager/controller가 있어야 함


8. 여기까지 세팅을 완료한 상태로


src/main/java

spring.model.(기본패키지명ㅁㅁㅁ)

에다가 (ㅁㅁㅁ)DTO.java 생성



src/main/resources안의 mybatis 패키지에

ㅁㅁㅁ.xml 파일을 만들고 나서


src/main/java

spring.model.(기본패키지명ㅁㅁㅁ)

에다가 (ㅁㅁㅁ)DAO.java 생성



src/test/java

JUnit Test Class 생성후 Test




5. 수업

진도: 

hw: 


6. 할것


기업회원도 검색 기능 넣는다

'Programming' 카테고리의 다른 글

160721: 90회차  (0) 2016.07.21
160720: 89회차  (0) 2016.07.20
160718: 87회차  (0) 2016.07.18
160715: 86회차  (0) 2016.07.15
160714: 85회차  (0) 2016.07.14
Posted by DAVID

160718: 87회차

Programming 2016. 7. 18. 17:28

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것


이것을 들어가요 ^^


런 에스큐엘 코맨드 라인 ^^

ID: system ^^

Password: 1234


공용 계정은


create user GoldStar identified by Lucky


Grant Connect , resource to GoldStar;


Select username, user_id, From dba_users Order by username ASC 하면 계정 보여줌!





5. 수업

진도: 

hw: 


6. 할것



'Programming' 카테고리의 다른 글

160720: 89회차  (0) 2016.07.20
160719: 88회차  (0) 2016.07.19
160715: 86회차  (0) 2016.07.15
160714: 85회차  (0) 2016.07.14
160713: 84회차  (0) 2016.07.13
Posted by DAVID

160715: 86회차

Programming 2016. 7. 15. 18:27

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것


오늘은 테이블 짜느라 머리가 아픕니다




5. 수업

진도: 

hw: 


6. 할것



'Programming' 카테고리의 다른 글

160719: 88회차  (0) 2016.07.19
160718: 87회차  (0) 2016.07.18
160714: 85회차  (0) 2016.07.14
160713: 84회차  (0) 2016.07.13
160712: 83회차  (1) 2016.07.12
Posted by DAVID

160714: 85회차

Programming 2016. 7. 14. 18:22

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것



오늘은 ER Diagram을 만들어 보았어요^^




5. 수업

진도: 

hw: 


6. 할것


'Programming' 카테고리의 다른 글

160718: 87회차  (0) 2016.07.18
160715: 86회차  (0) 2016.07.15
160713: 84회차  (0) 2016.07.13
160712: 83회차  (1) 2016.07.12
160711: 82회차  (0) 2016.07.11
Posted by DAVID

160713: 84회차

Programming 2016. 7. 13. 17:15

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것


실습문제 )

 

교육센터에서는 여러과정을 가르치는데, 각 과정은 코드, 이름 및 

수강료를 갖고 있다, 과정들은 1개월, 3개월, 6개월 기간은 다양한다.

왕눈이, 아로미는 우리의 훌륭한 강사들이다. 우리는 각강사의 이름과 , 

전화번호를 필요로 한다. 학생들은 시간에 따라 여러개의 과정을 

이수할 수 있는데 많은 학생들은 이렇게 하고 있다.

우리는 각 학생들의 이름과 전화번호를 알고 있다




실습문제.pptx



이런 걸 하고 있다


1정규화

2정규화

3정규화까지는 외울 것!


[09][DBModeling] 논리적단계의 정규화

[01]. 정규화(테이블 분리)
 
   - 테이블에 중복된 데이터가 발생하는 것을 줄일 수 있습니다.(1정규화)
 
   - 테이블에 null 컬럼이 발생하는 것을 줄일 수 있습니다.(1정규화)
 
   - 특정 테이블에 컬럼이 집중되는 것을 효과적으로 분리 할 수   있습니다.(3정규화)
 
   - 하나의 테이블에 두부류의 데이터 형질을 나타내는 목적을 가지고 있는 컬럼들
     테이블 분리의 대상이 됩니다.(2정규화)
   
   - 정규화를 많이하면 테이블이 너무 작게 쪼개져 과다한 JOIN으로 인한 과부하가 발
     생하게 됩니다. (역정규화)
 
   - 처리 속도 향상을 위해 역정규화를 실시합니다.(테이블 결합)
   
 
 
1. 제1 정규화
 
   - 반복되는 레코드들이 있는 테이블을 두개의 테이블로 나눈후  P.K를 적용시켜 중복
     되는 레코드가 발생되지 않도록 하는 것이 목적, 1:N의 관계 생성 합니다.
 
    1. 모든 테이블은 PK(Primary Key)속성이 있어야 합니다.
 
 
     기본 적인 테이블 구조
 
     성명이 중복해서 있습니다. 
     ↓
 
     성명          주소  
     ------------------- 
     개발자1     인천
     디자이너    인천
     개발자1     서울
 
 
    -  기초속성을 가지고 Primary Key를 적용 한 경우
 
      PK
      ↓
 
     사번            성명      주소
     ------------------------------
     A001-0001  개발자1   인천
     A001-0002  디자이너  인천
     A001-0003  개발자1   서울
 
 
    - 설계속성을 가지고 Primary Key를 적용한 경우, PK컬럼을 위해 sequence(일련번
      호) 컬럼을 추가합니다.
 
 
      PK     Unique
      ↓        ↓
 
     num    사번        성명       주소
     -------------------------------------
     1      A001-0001  개발자1   인천
     2      B001-0002  디자이너  인천
     3      A001-0003  개발자1   서울
 
 
 
 
  2. 중복된 레코드가 들어가 있는 [사원테이블 ]
 
   num    사원번호      성명        주소      자격증           취득일
     ------------------------------------------------------------------------
     1      A001-0001   개발자1    인천      정보처리       2013-05-12
     2      A001-0001   개발자1    인천      운전면허       2014-03-12
     3      A001-0001   개발자1    인천      정보검색       2014-11-12
     4      B001-0001   개발자2    서울      scjp              2015-11-12
     5      B001-0001   개발자2    서울      scwcd           2014-11-12
 
 
 
   - 1정규화가 이루어진 1:N관계의 2개의 테이블 
 
 
    <회원 테이블>
 
      PK
     사원번호        성명      주소
     --------------------------------
     A001-0001     개발자1   인천
     B001-0001     개발자2   안산
     A001-0002     개발자3   서울   
 
 
    <자격증 테이블>
 
     PK       FK
     num    사번         자격증           취득일
     -------------------------------------------------
     1      A001-0001   정보처리      2013-05-12
     2      A001-0001   운전면허      2014-03-12
     3      A001-0001   정보검색      2014-11-12
     4      B001-0001   scjp             2015-11-12
     5      B001-0001   scwcd          2014-11-12
 
 
    - 다른예) 과정테이블(과정코드, 과졍명, 교육내용, 교육기간, 강의 시간, 수강료,
                 교재1, 교재2, 교재3, 교재4, 교재5) --> 
                 과정테이블과 교재테이블로 분리
   
 
과정코드  과정명   교육내용  교육기간  강의시간  수강료  교재1  교재2  교재3  교재4  교재5
J001       java과정       ..          ..             ..            ..      scjp    wcd    bcd     null    null
O001      OCP과정      ..          ..             ..            ..      ocp1   ocp2   ocp3   ocp4   null
C001      C과정          ..          ..             ..            ..       C       C++
 
 
 
과정테이블(부모 )
 PK 
과정코드   과정명    교육내용    교육기간    강의시간   수강료   
----------------------------------------------------------------------
 J001       자바과정                                                                                 
 O001      OCP과정
 C001      C과정
 
 
 
교재테이블(자식 )
PK           FK
교재번호  과정코드     교재명
=========================
1             J001           scjp
2             J001           wcd
3             J001           bcd
4            O001           ocp1
5            C001           C
6            C001           C++
 
 
 
 
 
2. 제2정규화
   - 복합키로 구성되어 있는 테이블의 모든 컬럼들은 복합키 전체에 
     의존해야 하며, 그렇지 않을 경우 제 2 정규화의 대상이 됩니다.
     복합키의 일부분에 의해 종속되는 것을 부분적 함수 종속관계라고
     하며 이를 제거합니다.
   
   ※ 키의 의존적이란 말은 사원테이블의 예로 사원번호라는 키만 
       알면 그 사원의 이름, 주소,성별, 입사일을 알 수 있음을 
       의미합니다.
 
 
     <학과등록 테이블>의 예
 
      
  
 


   

 
 
3. 제3정규화
   - 기본키에 의존하지 않는 일반 컬럼이 있는 경우 테이블을 분리합니다.
   - 테이블의 기본키가 아닌 모든 컬럼들은 기본키에 의존해야 하는데 
     다른 일반 컬럼에 의존적인 컬럼이 있습니다. 이를 이전적 함수  
     종속 관계라 하며 이를 해결해야 합니다.
 
   <주문 테이블>의 예
 
 
 
  


  
 

 
 

 
4 정규화 실습
 

 

 



 







5. 수업

진도: 

hw: 


6. 할것


1. 리마 2차 시험 신청하기

2. 서점 갈 것

'Programming' 카테고리의 다른 글

160715: 86회차  (0) 2016.07.15
160714: 85회차  (0) 2016.07.14
160712: 83회차  (1) 2016.07.12
160711: 82회차  (0) 2016.07.11
160708: 81회차  (0) 2016.07.11
Posted by DAVID

160712: 83회차

Programming 2016. 7. 12. 14:25

종료하기 전 티스토리 네이버 로그아웃 할 것


1. 툴

동일

추가시: 


2. 폴더

동일

추가시:


3. 사용할 사이트

동일

추가시:


4. 공부하는 것

[03] 제약 조건(PK,FK) 실습 - 공지사항

 

 

부서     사무실  제목               내용           등록일

--------------------------------------------------------------------------------------------

전산부   101호   업무 전산화 안건   5월 22일 공지사항   2007-05-20

기획부   201호   업무 발전 방향     5월 23일 공지사항   2007-05-20

생산부   301호   생산량 증가 계획   5월 24일 공지사항   2007-05-22

기술부   407호   생산자재 A/S건     5월 25일 공지사항   2007-05-23

전산부   101호   여름 휴가 건       5월 22일 공지사항   2007-05-20

기획부   201호   추석 상여금 안내   5월 23일 공지사항   2007-05-20

생산부   301호   생산부 잔업 안내   5월 24일 공지사항   2007-05-22

기술부   407호   새로운 장비 도입   5월 25일 공지사항   2007-05-23

---------------------------------------------------------------------------------------------

위의 데이터를 표현하기위해 테이블을 2개로 분리후(정규화)

JOIN을 하여 위의 데이터가 출력되도록 쿼리를 작성하세요.

 

※ '부서', '사무실' 컬럼은 중복됨으로 분리할 필요가 있습니다.


테이블1: 부서 사무실 

테이블2: 제목 내용 등록일 


create table 회사(

부서 varchar(12) not null,

사무실 varchar(12) not null,

constraint PK_회사 primary key(부서)

);


create table 공지사항(

부서 varchar(12) not null,

제목 varchar(100) not null,

내용 varchar(100) not null,

등록일 varchar(30) not null,

constraint PK_공지사항 primary key(제목),

constraint FK_공지사항 foreign key(부서) references 회사(부서)

);



select * from 회사

select * from 공지사항



insert into 회사(부서,사무실) values('전산부', '101호');

insert into 회사(부서,사무실) values('기획부', '201호');

insert into 회사(부서,사무실) values('생산부', '301호');

insert into 회사(부서,사무실) values('기술부', '407호');




insert into 공지사항(부서,제목, 내용, 등록일) values('전산부', '업무 전산화 안건', '5월 22일 회의', '2007-05-20');

insert into 공지사항(부서,제목, 내용, 등록일) values('기획부', '업무 발전 방향', '5월 23일 회의', '2007-05-20');

insert into 공지사항(부서,제목, 내용, 등록일) values('생산부', '생산량 증가 계획', '5월 24일 회의', '2007-05-22');

insert into 공지사항(부서,제목, 내용, 등록일) values('기술부', '생산자재 A/S건', '5월 25일 회의', '2007-05-23');


insert into 공지사항(부서,제목, 내용, 등록일) values('전산부', '여름 휴가 건', '5월 22일 회의', '2007-05-20');

insert into 공지사항(부서,제목, 내용, 등록일) values('기획부', '추석 상여금 안내', '5월 23일 회의', '2007-05-20');

insert into 공지사항(부서,제목, 내용, 등록일) values('생산부', '생산부 잔업 안내', '5월 24일 회의', '2007-05-22');

insert into 공지사항(부서,제목, 내용, 등록일) values('기술부', '새로운 장비 도입', '5월 25일 회의', '2007-05-23');





select s.부서, s.사무실, e.제목, e.내용, e.등록일 

from 회사 s, 공지사항 e

where s.부서 = e.부서



delete from 회사 where 부서 = '전산부';

--  child record found 로 실패


delete from 공지사항 where 부서 = '전산부';

delete from 회사 where 부서 = '전산부';

-- child 부터 삭제했으므로 성공


drop table 회사

-- foreign key 참조로 삭제 실패


drop table 공지사항

drop table 회사

-- 참조값 삭제 후 삭제 성공


--영문패치--



[03] 제약 조건(PK,FK) 실습 - 공지사항

 

 

부서     사무실  제목               내용           등록일

--------------------------------------------------------------------------------------------

전산부   101호   업무 전산화 안건   5월 22일 공지사항   2007-05-20

기획부   201호   업무 발전 방향     5월 23일 공지사항   2007-05-20

생산부   301호   생산량 증가 계획   5월 24일 공지사항   2007-05-22

기술부   407호   생산자재 A/S건     5월 25일 공지사항   2007-05-23

전산부   101호   여름 휴가 건       5월 22일 공지사항   2007-05-20

기획부   201호   추석 상여금 안내   5월 23일 공지사항   2007-05-20

생산부   301호   생산부 잔업 안내   5월 24일 공지사항   2007-05-22

기술부   407호   새로운 장비 도입   5월 25일 공지사항   2007-05-23

---------------------------------------------------------------------------------------------

위의 데이터를 표현하기위해 테이블을 2개로 분리후(정규화)

JOIN을 하여 위의 데이터가 출력되도록 쿼리를 작성하세요.

 

※ '부서', '사무실' 컬럼은 중복됨으로 분리할 필요가 있습니다.



create table company(

part varchar(12) not null, -- 부서

office varchar(12) not null, -- 사무실

constraint PK_company primary key(part)

);


create table notice(

part varchar(12) not null, -- 부서

title varchar(100) not null, -- 제목

content varchar(100) not null, -- 내용

regdate varchar(30) not null, -- 등록일

constraint PK_notice primary key(title), -- 기본 키

constraint FK_notice foreign key(part) references company(part) -- 외래 키

);



select * from company

select * from notice



insert into company(part,office) values('전산부', '101호');

insert into company(part,office) values('기획부', '201호');

insert into company(part,office) values('생산부', '301호');

insert into company(part,office) values('기술부', '407호');




insert into notice(part,title, content, regdate) values('전산부', '업무 전산화 안건', '5월 22일 회의', '2007-05-20');

insert into notice(part,title, content, regdate) values('기획부', '업무 발전 방향', '5월 23일 회의', '2007-05-20');

insert into notice(part,title, content, regdate) values('생산부', '생산량 증가 계획', '5월 24일 회의', '2007-05-22');

insert into notice(part,title, content, regdate) values('기술부', '생산자재 A/S건', '5월 25일 회의', '2007-05-23');


insert into notice(part,title, content, regdate) values('전산부', '여름 휴가 건', '5월 22일 회의', '2007-05-20');

insert into notice(part,title, content, regdate) values('기획부', '추석 상여금 안내', '5월 23일 회의', '2007-05-20');

insert into notice(part,title, content, regdate) values('생산부', '생산부 잔업 안내', '5월 24일 회의', '2007-05-22');

insert into notice(part,title, content, regdate) values('기술부', '새로운 장비 도입', '5월 25일 회의', '2007-05-23');





select s.part 부서, s.office 사무실, e.title 제목, e.content 내용, e.regdate 등록일 

from company s, notice e

where s.part = e.part



delete from company where part = '전산부';

--  child record found 로 실패


delete from notice where part = '전산부';

delete from company where part = '전산부';

-- child 부터 삭제했으므로 성공


drop table company

-- foreign key 참조로 삭제 실패


drop table notice

drop table company

-- 참조값 삭제 후 삭제 성공





5. 수업

진도: 

hw: 


6. 할것



1. 리눅스마스터 시험 보기

2. git에 올리는 법 오늘 안에 해보기





8월 14일

'Programming' 카테고리의 다른 글

160714: 85회차  (0) 2016.07.14
160713: 84회차  (0) 2016.07.13
160711: 82회차  (0) 2016.07.11
160708: 81회차  (0) 2016.07.11
160707: 80회차  (0) 2016.07.07
Posted by DAVID
이전페이지 다음페이지
블로그 이미지

by DAVID

공지사항

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

태그

글 보관함

«   2025/05   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

링크

카테고리

PC (112)
Programming (109)

카운터

Total
Today
Yesterday
방명록 : 관리자 : 글쓰기
DAVID's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

PC

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • PC (112)
    • Programming (109)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바