text:
Báo cáo tài liệu này
130 bài tiểu luận triết học
Upload: NguyenThinh.dokovn|Ngày: 11/08/2012|Lượt xem: 994|Tải về: 6|Cấp: Đại học
130 bài tiểu luận triết họct001 bản sắc dân tộc trong nền kt mởt002 đấu tranh giai cấpt003 công pháp và tư pháp trong hiến pháp tbcnt004 llsx và các quan hệ sxt005 lý luận của chủ nghĩa mác con người và vấn đề con người trong sự nghiệp cnh - hđh đất nướct006 quan điểm của chủ nghĩa mác về con ngườit
130 bài tiểu luận triết học
T001 Bản sắc dân tộc trong nền KT mở
T002 Đấu tranh giai cấp
T003 Công pháp và tư pháp trong hiến pháp TBCN
T004 LLSX và các quan hệ SX
T005 Lý luận của chủ nghĩa Mác con người và vấn đề con người trong sự nghiệp CNH - HĐH đất nước
T006 Quan điểm của chủ nghĩa Mác về con người
T007 Lý luận nhận thức, vận dụng quan điểm đó cho sự phát triển của KT VN trước và sau mười năm đổi mới đến nay
T008 Lý luận thực tiễn và sự vận dụng quan điểm đó vào quá trình đổi mới ở VN
T009 Mâu thuẫn biện chứng trong quá trình XD nền kinh tế thị trường theo định hướng XHCN ở VN
T010 Máy móc đạt công nghiệp và vai trò của nó đối với VN
T011 Phép biện chứng về mối liên hệ phổ biến
T012 LLSX, QHSX và quy luật SX phù hợp với tính chất và trình độ phát triển của LLSX
T013 Cơ sở lý luận về chuyển đổi nền KTTT
T014 Quan hệ biện chứng giữa sự phát triển của LLSX và sự đa dạng hoá các loại hình sở hữu ở VN
T015 Quan hệ lượng - chất, nhân - quả và thực trạng của nền KT VN trước xu thế toàn cầu hoá
T016 Con người dưới góc nhìn của triết học và vấn đề con người trong quá trình đổi mới hiện nay
T017 Việc làm, thất nghiệp và lạm phát
T018 Vấn đề đổi mới LLSX và QHSX trong quá trình CNH - HĐH ở VN
T019 Tín dụng, cơ sở lý luận và thực tiễn tại VN
T020 Nhưng tư tưởng cơ bản của nho giáo và sự ảnh hưởng của nó tới nước ta
T021 Sinh viên và thất nghiệp
T022 Tri thức và nền KT tri thức
T023 Phép biện chứng về mối liên hệ phổ biến
T024 Cuộc cách mạng triết học của Mác - Ănghen và ý nghĩa
T025 Vận dụng lý luận phương thức SX phân tích sự phát triển của nhà máy nước Rạng Đông
T026 Mối quan hệ biện chứng giữa nguyên nhân và kết quả
T027 Các phép biện chứng
T028 Phật giáo và ảnh hưởng của nó tới VN
T029 Phật giáo, quá trình hình thành và phát triển
T030 KTTT theo định hướng XHCN
T031 Thành tựu và hạn chế của phép duy vật biện chứng
T032 Phân tích thực chất cuộc cách mạng triết học của Mác - Ănghen và ý nghĩa
T033 Giai cấp CN và vai trò của Đảng cộng sản đối với sự phát triển của CNXH
T034 Một số vấn đề thực tiễn và cơ sở lý luận đối với quá trình CNH - HĐH ở VN
T035 Con người và các mối quan hệ
T036 Vai trò của con người trong công cuộc CNH - HĐH đất nước
T037 Ý thức và vai trò của ý thức trong đời sống XH
T038 Văn hoá kinh doanh dưới cái nhìn triết học
T039 Cơ hội và thách thức của các doanh nghiệp VN trong quá trình hội nhập
T040 Vấn đề thất nghiệp của sinh viên
T041 Con người và bản chất
T042 Hình thái KTXH
T043 Ý thức, tri thức và vai trò
T044 Mối quan hệ biện chứng giữa vật chất và ý thức
T045 Thực trạng giao thông và nguyên nhân T046 Vật chất và ý thức
T047 CNH - HĐH và vai trò của nó trong quá trình tiến lên CNXH ở nước ta
T048 CNH - HĐH và vai trò của nó trong quá trình tiến lên CNXH ở nước ta
T049 Mâu thuẫn và vấn đề XD nền KT độc lập, tự chủ
T050 Quan điểm toàn diện và vận dụng CNH - HĐH
T051 Quan điểm lịch sử cụ thể đối với quá trình phát triển KT
T052 Quy luật sự thống nhất biện chứng giữa các mặt đối lập
T053 Mâu thuẫn biện chứng và biểu hiện
T054 Phép biện chứng duy vật và vấn đề phát triển KT
T055 Phật giáo
T056 Phép biện chứng về mối liên hệ phổ biến
T057 Phật giáo qua các giai đoạn
T058 Địa vị pháp lí của các cơ quan hành chính trong bộ máy nhà nước
T059 Quy luật giá trị và vai trò của nó trong nền KTTT
T060 Những mâu thuẫn biện chứng trong nền KTTT theo định hướng XHCN ở VN
T061 Cơ sở hạ tầng và kiến trúc thượng tầng
T062 Nguyên lí về mối liên hệ phổ biến và thực tiễn
T063 Thực trạng giao thông, nguyên nhân và giải pháp (quan hệ nhân quả)
T064 Mối quan hệ giữa cái riêng và cái chung và vận dụng cho sự phát triển KTTT ở nước ta
T065 Phép biện chứng về mối liên hệ phổ biến
T066 Ô nhiễm môi trường
T067 Kiến trúc Hà Nội
T068 CNH - HĐH, thực trạng và giải pháp
T069 CNH - HĐH dưới góc nhìn triết học
T070 Tư duy lí luận
T071 Lý luận về hình thái KT
T072 Lý luận về hình thái KT
T073 CNH - HĐH và vai trò của nó trong quá trình tiến lên CNXH ở nước ta
T074 Sự phù hợp của quan hệ SX và sự phát triển của LLSX
T075 Học thuyết về hình thái KTXH
T076 Vai trò của khoa học kĩ thuật đối với sự phát triển của LLSX
T077 Những mâu thuẫn biện chứng trong nền KTTT theo định hướng XHCN ở VN
T078 Cơ sở lí luận triết học của quá trình CNH - HĐH theo định hướng XHCN ở VN
T079 Quan hệ SX phù hợp
T080 Cơ sở lí luận triết học của quá trình CNH - HĐH theo định hướng XHCN ở VN
T081 VN trong xu thế hội nhập dưới con mắt triết học
T082 Nền KTTT và phạm trù nội dung - hình thức
T083 Thực trạng của vấn đề xe Bus và giải pháp
T084 Nhân tố con người trong sự phát triển LLSX và chiến lược đào tạo nguồn nhân lực chất lượng cao
T085 VN trong xu thế hội nhập dưới con mắt triết học
T086 Nguyên lí hình thái kinh tế và ảnh hưởng của nó trong hoạt động ngân hàng
T087 Quan hệ biện chứng giữa tự nhiên và XH
T088 Cơ sở lí luận khoa học phát triển không ngừng và cách mạng KHCN
T089 Phạm trù nội dung - hình thức và sự phát triển thương hiệu
T090 Mối quan hệ giữa cá nhân và XH
T091 Thực tiễn là tiêu chuẩn chân lý
T092 Con người và nhân tố con người trong sự phát triển nền KT tri thức
T093 Những nét lịch sử cơ bản của sự hình thành phép biện chứng
T094 Nguyên lí về mối liên hệ phổ biến và sự phát triển phép biện chứng duy vật
T095 Mối quan hệ giữa sự phân công lao động XH và XH hoá SX qua một số tác phẩm thời kì đầu của Mác
T096 Tôn giáo
T097 Sự khác biệt giữa triết học phương Đông và phương Tây
T098 LLSX và QHSX
T099 Mối quan hệ giữa sự phân công lao động XH và XH hoá SX qua một số tác phẩm thời kì đầu của Mác
T100 Mối quan hệ giữa TBCN và người lao động
T101 Phát triển và sử dụng nguồn nhân lực
T102 Biện chứng của sự phát triển nền KT nhiều thành phần ở VN trong thời kì quá độ lên CNXH
T103 Quan điểm toàn diện trong sự đổi mới nền KT ở VN
T104 Mâu thuẫn biện chứng và sự thống nhất giữa các mặt đối lập
T105 Mối quan hệ biện chứng giữa TLSX và LLSX
T106 Quan hệ biện chứng giữa LLSX và QHSX
T107 Quá trình phát triển của phép biện chứng
T108 Phép biện chứng và tư duy biện chứng
T109 Lý luận hình thái KTXH
T110 Phật giáo
T111 Sinh viên và thất nghiệp
T112 Hôn nhân dưới cái nhìn triết học
T113 Hình thái KTXH
T114 Hình thái KTXH
T115 Mối quan hệ giữa vật chất và ý thức
T116 Quy luật mâu thuẫn
T117 Lý luận hình thái KTXH
T118 Sự thống nhất giữa bản chất và hiện tượng
T119 Quy luật lượng - chất
T120 CNH - HĐH ở VN trong thời kỳ quá độ
T121 CNH - HĐH nông thôn ở nước ta
T122 CNH - HĐH
T123 Đào tạo nguồn lực con người
T124 Hình thái KTXH
T125 Đào tạo nguồn lực con người
T126 Quá trình chuyển đổi sang nền KTTT và sự vận dụng quan điểm triết học Mác - Lênin
T127 Nho giáo
T128 Mối liên hệ biện chứng giữa các thành phần KT
T129 Quan điểm của Mác - Ănghen về vật chất
T130 Nhân cách và nhận thức TL KTCT & CNXH KH KC001 CNH - HĐH và vai trò của nó trong sự nghiệp XD XHCN ở nước ta

markdown:
Báo cáo tài liệu này
# 130 bài tiểu luận triết học
Upload:
[NguyenThinh.dokovn](/user/NguyenThinh.dokovn)|Ngày: 11/08/2012|Lượt
xem: 994|Tải về: 6|Cấp: Đại học
130 bài tiểu luận triết họct001 bản sắc dân tộc trong nền kt mởt002 đấu tranh giai cấpt003 công pháp và tư pháp trong hiến pháp tbcnt004 llsx và các quan hệ sxt005 lý luận của chủ nghĩa mác con người và vấn đề con người trong sự nghiệp cnh - hđh đất nướct006 quan điểm của chủ nghĩa mác về con ngườit
**130 bài tiểu luận triết học** **T001 Bản sắc dân tộc trong nền KT mở**
T002 Đấu tranh giai cấp
T003 Công pháp và tư pháp trong hiến pháp TBCN
T004 LLSX và các quan hệ SX
T005 Lý luận của chủ nghĩa Mác con người và vấn đề con người trong sự nghiệp CNH - HĐH đất nước
T006 Quan điểm của chủ nghĩa Mác về con người
T007 Lý luận nhận thức, vận dụng quan điểm đó cho sự phát triển của KT VN trước và sau mười năm đổi mới đến nay
T008 Lý luận thực tiễn và sự vận dụng quan điểm đó vào quá trình đổi mới ở VN
T009 Mâu thuẫn biện chứng trong quá trình XD nền kinh tế thị trường theo định hướng XHCN ở VN
T010 Máy móc đạt công nghiệp và vai trò của nó đối với VN
T011 Phép biện chứng về mối liên hệ phổ biến
T012 LLSX, QHSX và quy luật SX phù hợp với tính chất và trình độ phát triển của LLSX
T013 Cơ sở lý luận về chuyển đổi nền KTTT
T014 Quan hệ biện chứng giữa sự phát triển của LLSX và sự đa dạng hoá các loại hình sở hữu ở VN
T015 Quan hệ lượng - chất, nhân - quả và thực trạng của nền KT VN trước xu thế toàn cầu hoá
T016 Con người dưới góc nhìn của triết học và vấn đề con người trong quá trình đổi mới hiện nay
T017 Việc làm, thất nghiệp và lạm phát
T018 Vấn đề đổi mới LLSX và QHSX trong quá trình CNH - HĐH ở VN
T019 Tín dụng, cơ sở lý luận và thực tiễn tại VN
T020 Nhưng tư tưởng cơ bản của nho giáo và sự ảnh hưởng của nó tới nước ta
T021 Sinh viên và thất nghiệp
T022 Tri thức và nền KT tri thức
T023 Phép biện chứng về mối liên hệ phổ biến
T024 Cuộc cách mạng triết học của Mác - Ănghen và ý nghĩa
T025 Vận dụng lý luận phương thức SX phân tích sự phát triển của nhà máy nước Rạng Đông
T026 Mối quan hệ biện chứng giữa nguyên nhân và kết quả
T027 Các phép biện chứng
T028 Phật giáo và ảnh hưởng của nó tới VN
T029 Phật giáo, quá trình hình thành và phát triển
T030 KTTT theo định hướng XHCN
T031 Thành tựu và hạn chế của phép duy vật biện chứng
T032 Phân tích thực chất cuộc cách mạng triết học của Mác - Ănghen và ý nghĩa
T033 Giai cấp CN và vai trò của Đảng cộng sản đối với sự phát triển của CNXH
T034 Một số vấn đề thực tiễn và cơ sở lý luận đối với quá trình CNH - HĐH ở VN
T035 Con người và các mối quan hệ
T036 Vai trò của con người trong công cuộc CNH - HĐH đất nước
T037 Ý thức và vai trò của ý thức trong đời sống XH
T038 Văn hoá kinh doanh dưới cái nhìn triết học
T039 Cơ hội và thách thức của các doanh nghiệp VN trong quá trình hội nhập
T040 Vấn đề thất nghiệp của sinh viên
T041 Con người và bản chất
T042 Hình thái KTXH
T043 Ý thức, tri thức và vai trò
T044 Mối quan hệ biện chứng giữa vật chất và ý thức
T045 Thực trạng giao thông và nguyên nhân T046 Vật chất và ý thức
T047 CNH - HĐH và vai trò của nó trong quá trình tiến lên CNXH ở nước ta
T048 CNH - HĐH và vai trò của nó trong quá trình tiến lên CNXH ở nước ta
T049 Mâu thuẫn và vấn đề XD nền KT độc lập, tự chủ
T050 Quan điểm toàn diện và vận dụng CNH - HĐH
T051 Quan điểm lịch sử cụ thể đối với quá trình phát triển KT
T052 Quy luật sự thống nhất biện chứng giữa các mặt đối lập
T053 Mâu thuẫn biện chứng và biểu hiện
T054 Phép biện chứng duy vật và vấn đề phát triển KT
T055 Phật giáo
T056 Phép biện chứng về mối liên hệ phổ biến
T057 Phật giáo qua các giai đoạn
T058 Địa vị pháp lí của các cơ quan hành chính trong bộ máy nhà nước
T059 Quy luật giá trị và vai trò của nó trong nền KTTT
T060 Những mâu thuẫn biện chứng trong nền KTTT theo định hướng XHCN ở VN
T061 Cơ sở hạ tầng và kiến trúc thượng tầng
T062 Nguyên lí về mối liên hệ phổ biến và thực tiễn
T063 Thực trạng giao thông, nguyên nhân và giải pháp (quan hệ nhân quả)
T064 Mối quan hệ giữa cái riêng và cái chung và vận dụng cho sự phát triển KTTT ở nước ta
T065 Phép biện chứng về mối liên hệ phổ biến
T066 Ô nhiễm môi trường
T067 Kiến trúc Hà Nội
T068 CNH - HĐH, thực trạng và giải pháp
T069 CNH - HĐH dưới góc nhìn triết học
T070 Tư duy lí luận
T071 Lý luận về hình thái KT
T072 Lý luận về hình thái KT
T073 CNH - HĐH và vai trò của nó trong quá trình tiến lên CNXH ở nước ta
T074 Sự phù hợp của quan hệ SX và sự phát triển của LLSX
T075 Học thuyết về hình thái KTXH
T076 Vai trò của khoa học kĩ thuật đối với sự phát triển của LLSX
T077 Những mâu thuẫn biện chứng trong nền KTTT theo định hướng XHCN ở VN
T078 Cơ sở lí luận triết học của quá trình CNH - HĐH theo định hướng XHCN ở VN
T079 Quan hệ SX phù hợp
T080 Cơ sở lí luận triết học của quá trình CNH - HĐH theo định hướng XHCN ở VN
T081 VN trong xu thế hội nhập dưới con mắt triết học
T082 Nền KTTT và phạm trù nội dung - hình thức
T083 Thực trạng của vấn đề xe Bus và giải pháp
T084 Nhân tố con người trong sự phát triển LLSX và chiến lược đào tạo nguồn nhân lực chất lượng cao
T085 VN trong xu thế hội nhập dưới con mắt triết học
T086 Nguyên lí hình thái kinh tế và ảnh hưởng của nó trong hoạt động ngân hàng
T087 Quan hệ biện chứng giữa tự nhiên và XH
T088 Cơ sở lí luận khoa học phát triển không ngừng và cách mạng KHCN
T089 Phạm trù nội dung - hình thức và sự phát triển thương hiệu
T090 Mối quan hệ giữa cá nhân và XH
T091 Thực tiễn là tiêu chuẩn chân lý
T092 Con người và nhân tố con người trong sự phát triển nền KT tri thức
T093 Những nét lịch sử cơ bản của sự hình thành phép biện chứng
T094 Nguyên lí về mối liên hệ phổ biến và sự phát triển phép biện chứng duy vật
T095 Mối quan hệ giữa sự phân công lao động XH và XH hoá SX qua một số tác phẩm thời kì đầu của Mác
T096 Tôn giáo
T097 Sự khác biệt giữa triết học phương Đông và phương Tây
T098 LLSX và QHSX
T099 Mối quan hệ giữa sự phân công lao động XH và XH hoá SX qua một số tác phẩm thời kì đầu của Mác
T100 Mối quan hệ giữa TBCN và người lao động
T101 Phát triển và sử dụng nguồn nhân lực
T102 Biện chứng của sự phát triển nền KT nhiều thành phần ở VN trong thời kì quá độ lên CNXH
T103 Quan điểm toàn diện trong sự đổi mới nền KT ở VN
T104 Mâu thuẫn biện chứng và sự thống nhất giữa các mặt đối lập
T105 Mối quan hệ biện chứng giữa TLSX và LLSX
T106 Quan hệ biện chứng giữa LLSX và QHSX
T107 Quá trình phát triển của phép biện chứng
T108 Phép biện chứng và tư duy biện chứng
T109 Lý luận hình thái KTXH
T110 Phật giáo
T111 Sinh viên và thất nghiệp
T112 Hôn nhân dưới cái nhìn triết học
T113 Hình thái KTXH
T114 Hình thái KTXH
T115 Mối quan hệ giữa vật chất và ý thức
T116 Quy luật mâu thuẫn
T117 Lý luận hình thái KTXH
T118 Sự thống nhất giữa bản chất và hiện tượng
T119 Quy luật lượng - chất
T120 CNH - HĐH ở VN trong thời kỳ quá độ
T121 CNH - HĐH nông thôn ở nước ta
T122 CNH - HĐH
T123 Đào tạo nguồn lực con người
T124 Hình thái KTXH
T125 Đào tạo nguồn lực con người
T126 Quá trình chuyển đổi sang nền KTTT và sự vận dụng quan điểm triết học Mác - Lênin
T127 Nho giáo
T128 Mối liên hệ biện chứng giữa các thành phần KT
T129 Quan điểm của Mác - Ănghen về vật chất
T130 Nhân cách và nhận thức TL KTCT & CNXH KH KC001 CNH - HĐH và vai trò của nó trong sự nghiệp XD XHCN ở nước ta

Cache-Control: private


text:
Đánh giá - Góp ý
Nguồn tham khảo
Đánh dấu TL ưa thích
Nhặt tạm vào giỏ
Loại: Luận văn - Luận án - Đề tài KH
Tác giả:
Chưa rõ
Nguồn gốc:
Luận văn, 2011
Từ khoá: nuôi ong mật chăn nuôi
Chuyên ngành:
/ Nông - Lâm - Ngư nghiệp / Chăn nuôi - Thú y
Sơ lược:
Mục tiêu nghiên cứu:
- Tìm phương pháp bắt ong mật (Apis cerana) ngoài tự nhiên về nuôi.
- Tận dụng các vật liệu sẵn có ở hộ gia đình như thùng muốt, chậu kiểng bằng đất nung nuôi ong mật đạt hiệu quả kinh tế.
Tổng kích thước gói: 801.4 kB
Nguồn tham khảo:
Giáo trình Nhân đàn ong
Giáo trình Nuôi ong trong thùng hiện đại
Giáo trình Kỹ thuật nuôi ong mật
Giáo trình Thu hoạch, sơ chế, bảo quản và tiêu thụ sản phẩm
Giáo trình Chuẩn bị giống, dụng cụ nuôi ong
Giáo trình Phòng trừ dịch hại ong
Giáo trình Tìm hiểu đặc điểm sinh học ong mật
Dâu Tằm - Ong mật
Chăn nuôi đại cương
Thức ăn gia súc
Giáo trình Thức ăn gia súc
Chăn nuôi cơ bản
Nuôi bò sữa ở Nông hộ
Chăn nuôi trâu bò
Sử dụng phụ phẩm nuôi gia súc nhai lại
Chăn nuôi trâu bò
Chăn nuôi dê thỏ
Bài giảng Chăn nuôi bò khuyến nông
Kỹ thuật chăn nuôi lợn thịt
Bài giảng Thức ăn chăn nuôi
Tập huấn Các quy trình thực hành chuẩn trong chăn nuôi heo an toàn
Tài liệu hướng dẫn Chăn nuôi gà và Ấp trứng
Giáo trình Chuẩn bị máy móc thiết bị phương tiện sản xuất
Giáo trình Đóng gói, bảo quản và sử dụng thức ăn
Giáo trình Sản xuất thức ăn
Giáo trình Xác định nguyên liệu sản xuất thức ăn
Cẩm nang Chăn nuôi heo
Dinh dưỡng và thức ăn cho bò
Chăn nuôi gia cầm
Nuôi dưỡng gia súc nhai lại
Nâng cao các kỹ năng về di truyền, sinh sản và lai tạo giống bò thịt nhiệt đới
Bài giảng Chăn nuôi gia cầm
Kỹ thuật chăn nuôi lợn
Giáo trình Chăn nuôi thỏ
Bài giảng Tiếng Anh chuyên ngành chăn nuôi thú y
Giáo trình Chăn nuôi lợn
Kỹ thuật chăn nuôi gà trong nông hộ
Kỹ thuật chăn nuôi gà - P1
Bài giảng Sinh sản gia súc
Thức ăn và nuôi dưỡng bò sữa
Bệnh ngoại khoa gia súc
Giáo trình Chọn giống vật nuôi
Chăn nuôi bò sinh sản
Dinh dưỡng gia súc
Chăn nuôi thú nhai lại
Thuốc Vacxin Thú Y
Giáo trình Giống vật nuôi
Traitement des déchets d’élevage par la technique de biogaz
Xử lý phụ phế phẩm từ tôm bằng phương pháp vi sinh
Phát hiện một số gen độc lực của E.coli phân lập được từ phân và thịt bò, heo bằng kỹ thuật multiplex - PCR
Chế biến yaourt trái cây từ sữa bò tươi
Các biện pháp xử lý phân trong chăn nuôi heo an toàn sinh học
Thiết kế nhà máy chế biến thức ăn gia súc, gia cầm
Xử lý nước thải trong chăn nuôi heo
Quy trình thực hành chăn nuôi tốt, chăn nuôi an toàn
Swine Nutrition Guide
Quy chuẩn kỹ thuật quốc gia điều kiện trại chăn nuôi gia cầm an toàn sinh học (QCVN 01-15:2010/BNNPTNT)
Quy chuẩn kỹ thuật quốc gia điều kiện trại chăn nuôi lợn an toàn sinh học (QCVN 01-14:2010/BNNPTNT)
Hỏi đáp kỹ thuật chăn nuôi gà trong nông hộ
Bệnh Gumboro và các kỹ thuật sinh học phân tử
Bệnh phổ biến ở lợn và biện pháp phòng trừ - Tập 1
Bệnh phổ biến ở lợn và biện pháp phòng trừ - Tập 2
Chăm sóc chó cưng
66 bệnh gia cầm và biện pháp phòng trị
Kỹ thuật chăn nuôi lợn nái sinh sản
Quản lý chất lượng sữa
Kỹ thuật nuôi lợn rừng (heo rừng)
Hướng dẫn kỹ thuật nuôi dê
Quy trình chẩn đoán bệnh cúm gia cầm (10 TCN)
An toàn sinh học trong chăn nuôi
Cẩm nang thú y viên - Tập 1
Xử lý chất thải thực tế trong trại lợn
Tài liệu quản lý và chương trình thức ăn cho heo giống, heo con và heo thịt
Chế biến các phụ phẩm giết mổ
Sổ tay điều trị Một số bệnh phổ biến ở vật nuôi
100 câu hỏi đáp nuôi bò sữa
Bệnh gia cầm - Tập 1
109 Bệnh Gia Cầm và Cánh Phòng Trị
Bệnh ký sinh trùng ở gia cầm và biện pháp phòng trị
Kỹ thuật nuôi lợn thịt lớn nhanh - nhiều nạc
Cẩm nang nuôi chó
Bệnh truyền nhiễm thường gặp ở bò sữa
Cai sữa sớm và nuôi dưỡng lợn con
Bổ sung Vitamin C nâng cao năng suất gia cầm
Nuôi cút
Giới thiệu về nguyên liệu thức ăn chăn nuôi
Chăn nuôi bồ câu và chim cút
Bệnh của dê và biện pháp phòng trị
Những câu hỏi thường gặp trong nông nghiệp và chăn nuôi
Bệnh dại và phòng dại cho người và chó
Kỹ thuật nuôi trăn
Nuôi chim bồ câu
Hạn chế của việc chăn nuôi bò sữa nhập nội ở Việt Nam và một số giải pháp khắc phục
71 câu Hỏi - Đáp về chăn nuôi bò sữa
Tác hại của thức ăn tinh đối với bò sữa
Mathematical Modelling in Animal Nutrition
Thức ăn cho gia súc nhai lại trong nông hộ miền Trung
Hướng dẫn sử dụng về Hoá chất, kháng sinh và các chất độc hại trong nuôi trồng thuỷ sản
Giáo trình Nuôi lợn thịt
Kỹ thuật nuôi giun quế (trùn quế)
Những câu hỏi thường gặp trong kỹ thuật trồng trọt
Các phương pháp làm tăng trưởng vật nuôi
Kinh nghiệm nuôi gà nòi (gà chọi)
Kỹ thuật chăn nuôi dê
Thiết kế phân xưởng chế biến thức ăn chăn nuôi
Nghiên cứu về hiệu quả xử lý chất thải chăn nuôi bằng thủy sinh thực vật
Khai Thác Và Bảo Quản Tinh Dịch gia súc
Kỹ thuật gene trong chăn nuôi - Tạo động vật chuyển gene như thế nào?
Kỹ thuật nuôi đà điểu
Bệnh dại ở chó mèo
Chuyên đề Phòng chống bệnh dịch tả heo
Chuyên đề Bào chế và kiểm nghiệm thuốc thú y
Influenza Virus
Enzyme trong công nghiệp sữa
Mô hình V.A.C.B ở ĐBSCL
Sử dụng kháng sinh trong thú y
Nghiên cứu tận dung bã dứa làm thức ăn trong chăn nuôi
+ Ngoài số lượt download cho phép mỗi ngày, bạn có thể yêu cầu thêm bằng cách soạn tin:
EK D <username>
Nhắn tới các số 8577, 8677, 8777.
Chú ý xem hướng dẫn.
Tự động
TELEX
VNI
VIQR
VIQR*
Tắt
Chính tả
Kiểu cũ

markdown:
|
|
Sử dụng tốt nhất với FireFox(+), Chrome(+), Safari(+), Opera(+), IE7(-), hỗ trợ iPhone, Android, Nokia..
![]()
|
|
Thẻ thư mục..
|
|
|
|
+ Tại sao không đăng ký được?
+ Tại sao click download lại bị nhắc đăng nhập? Tại sao không download được?
+ Lỗi download 99% vì sao?
Hãy xem
|
|

WARC-Type: response

Content-Type: application/http; msgtype=response

Server: Apache

Content-Encoding: gzip

Vary: Accept-Encoding

Content-Type: text/html; charset=utf-8

Connection: close


text:
Động lực
Tháng 3 vừa rồi, tại một cuộc thuyết trình CeBIT mà tôi đã tổ chức về DB2 9.7, tôi đã đốt cháy một bộ loa máy tính 110V do tôi đã không thận trọng cắm nó vào lưới điện 230V của nước Đức mà không cho qua một biến áp. Trong cùng chuyến đi đó, tôi cũng đã phá hỏng bộ sạc điện cho bàn chải đánh răng chạy điện của tôi và máy cạo râu của tôi với các sự cố tương tự. Bỏ qua sự bất lực của tôi như là bài học từ các sai lầm sang một bên, việc này xảy ra như không có gì bất ngờ đúng như một trong các câu châm ngôn yêu thích của tôi (không rõ nguồn gốc) là "Vấn đề với các tiêu chuẩn là có bao nhiêu tiêu chuẩn".
Trong thế giới của các hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS), chúng tôi may mắn có ít nhất ba tiêu chuẩn chính và vô số các sự thay đổi theo các tiêu chuẩn đó:
- ANSI SQL và ANSI SQL/PSM
- Oracle SQL và PL/SQL
- Sybase và Microsoft TSQL
Hình 1 mô tả bằng một sơ đồ Venn cách các phương ngữ SQL chồng lên nhau:
Hình 1. Sự hỗ loạn Babylon của SQL
Bất cứ khi nào bạn viết một ứng dụng, bạn phải tiến hành lựa chọn sử dụng nhà cung cấp RDBMS nào. Một khi bạn đã thực hiện sự lựa chọn đó, về cơ bản bạn được cam kết. Bất kỳ cố gắng nào để chuyển đổi các nhà cung cấp để tận dụng giá thấp hơn, công nghệ tốt hơn hoặc quan hệ đối tác tốt hơn bị cản trở do mã thừa kế cần được viết lại nhiều hơn, trước khi nó có thể được dùng với một RDBMS khác. Ngoài ra, bộ kỹ năng của bạn không thể chuyển từ một sản phẩm này sang một sản phẩm khác dễ dàng như bạn mong đợi.
IBM DB2 9.7 cho Linux, UNIX và Windows (DB2) nhằm hạ thấp đáng kể những rào cản này cho các ứng dụng được viết cho Oracle khi cho phép các ứng dụng đó chuyển sang DB2. Điều này cung cấp cho các khách hàng và các nhà cung cấp khả năng lựa chọn một DBMS đựa theo sự xuất sắc của nó, chứ không theo lịch sử ứng dụng.
DB2 9.7 bổ sung thêm các tính năng tương thích của Oracle
Để cho phép một ứng dụng được viết cho một RDBMS chạy trên nền khác gần như không cần thay đổi, nhiều đoạn mã phải nằm đúng vị trí. Các cơ chế khóa, các kiểu dữ liệu, SQL, ngôn ngữ theo thủ tục khác nhau nằm trên máy chủ và thậm chí cả các giao diện khách hàng được chính ứng dụng sử dụng cần phải được liên kết không chỉ theo cú pháp, mà còn theo ngữ nghĩa.
Tất cả các bước này đã được thực hiện trong DB2. Các thay đổi là ngoại lệ, không phải là quy luật (IBM có thể nhanh chóng đánh giá các thay đổi của ứng dụng cần thiết). Bảng 1 cung cấp một tổng quan ngắn gọn về các tính năng thường được sử dụng:
Bảng 1. Các tính năng thường được sử dụng
Với DB2 9.7, bạn không cần chuyển một ứng dụng nữa. Bạn chỉ kích hoạt ứng dụng. Trong trường hợp của một ứng dụng đóng gói, nó có thể chia sẻ một nguồn cho cả hai DB2 và Oracle.
Nói cách khác, việc cho phép một ứng dụng Oracle chuyển sang DB2 không trở nên phức tạp hơn việc kích hoạt một Chương trình-C được viết cho HP-UX để chạy trên AIX.
Điều khiển tương tranh
Trong quá khứ, một trong những sự khác biệt nổi bật nhất giữa Oracle và DB2 là cách tiếp cận để kiểm soát điều khiển tương tranh. Các cụm từ dễ nhớ là: "Những người đọc không cản trở những người viết và những người viết không cản trở những người đọc".
Bảng 2. Hành vi tương tranh của Oracle
Không đi vào chi tiết về các mức cô lập, chỉ cần nói rằng đa số các ứng dụng có sử dụng Sự cô lập mức câu lệnh (Statement Level Isolation) mặc định của Oracle sẽ chỉ làm việc tốt khi sử dụng mặc định của DB2 về Sự ổn định của con trỏ (Cursor Stability-CS).
Tuy nhiên, theo truyền thống, CS đã được triển khai sao cho những người viết ngăn chặn những người đọc và trong một số trường hợp, những người đọc có thể ngăn chặn những người viết. Lý do là ở chỗ, theo truyền thống, một giao dịch dưới sự cô lập CS sẽ "chờ kết quả" của các thay đổi của một giao dịch tương tranh đang chờ xử lý.
Bảng 3. Hành vi tương tranh của DB2 truyền thống với CS
Hóa ra là không có lý do ngữ nghĩa nào là tại sao một giao dịch đang chạy dưới sự cách ly CS lại chờ kết quả khi gặp phải một hàng đã thay đổi. Một hành vi thỏa đáng tương tự là đọc các phiên bản đã cam kết hiện tại của dòng đã thay đổi.
Hành vi này đã được thực hiện trong DB2 9.7. Điều đã xảy ra là DB2 đơn giản lấy ra phiên bản hiện đã cam kết hiện tại của một hàng bị khóa từ nhật ký (log). Trong hầu hết các trường hợp chung, hàng đó vẫn còn nằm trong bộ đệm log do sự thay đổi này vẫn chưa được cam kết. Nhưng ngay cả khi hàng đã được viết ra và cũng đã bị ghi đè trong bộ đệm log DB2 sẽ biết chính xác tìm nó ở đâu, để cho một IO sẽ đưa phiên bản mong muốn vào nhóm bộ đệm (bufferpool).
Hãy tưởng tượng (xem Hình 2) một người dùng đang cập nhật một tên trong một bảng nhân viên. Trước khi người dùng đó đã cam kết thay đổi, một người dùng khác quét bảng này. Theo truyền thống, người sử dụng thứ hai sẽ phải đợi cho người sử dụng đầu tiên cam kết hoặc khôi phục (rollback). Nhờ đọc dữ liệu đã cam kết hiện tại, hoạt động quét của người dùng thứ hai sẽ đơn giản lấy ra phiên bản của hàng từ bộ đệm log mà nó không chứa các thay đổi của người sử dụng đầu tiên.
Hình 2. Những người viết không ngăn chặn những người đọc
Điều quan trọng cần lưu ý rằng hành vi này:
- Không đưa vào đối tượng mới nào như là một đoạn khôi phục.
- Không có chi phí hiệu năng nào cho người viết do log cần phải được viết không theo hệ thống.
- Không thể gây ra bất cứ tình hình nào như một "bản chụp quá cũ" vì trong trường hợp không chắc có xảy ra tệp log cần thiết đã được lưu trữ (trong khi một giao dịch vẫn còn mở!), DB2 chỉ đơn giản sẽ khôi phục lại và đợi khóa để đi tiếp.
Ngoài những thay đổi này, các kỹ thuật tránh phải thêm khóa đã được đưa vào DB2 để loại bỏ một người đọc đang nắm giữ một khóa theo chế độ cô lập CS.
Bảng 3. Hành vi tương tranh của DB2 mới với CS
Như bạn thấy, các hành vi tương tranh bây giờ giống hệt với các hành vi của Oracle. Thực tế, cơ sở dữ liệu DB2 vừa mới được tạo ra thể hiện hành vi này theo mặc định.
Các kiểu dữ liệu mới
Tâm điểm của mỗi cơ sở dữ liệu là dữ liệu của nó. Các kiểu không khớp hoặc các ngữ nghĩa của các kiểu này không khớp có thể tác động đến khả năng cho phép một ứng dụng chuyển sang ứng dụng RDBMS khác. Do đó để cho phép các ứng dụng Oracle chạy trên DB2, điều quan trọng là phải hỗ trợ các kiểu cơ sở không tiêu chuẩn, như là chuỗi, các ngày tháng và các số. Ngoài việc điều chỉnh các kiểu cơ sở này, có các kiểu khác, phức tạp hơn được sử dụng phổ biến trong PL/SQL của Oracle, nó đã được thêm vào trong DB2 9.7..
Bảng 5. Các kiểu dữ liệu DB2 mới
Tạo khuôn mẫu ẩn và độ phân giải kiểu
"Nếu nó đi như một con vịt và nó nói như vịt, thì sau đó nó phải là một con vịt".
"Nếu nó đi như một con vịt và nó nói như vịt, thì sau đó nó phải là một con vịt". Đây là câu thần chú của nhiều ngôn ngữ mới như PHP và Ruby. Mỗi chữ là một chuỗi và sau đó sử dụng như một kiểu khác dựa vào ngữ cảnh. Trung thành với tiêu chuẩn SQL và đi theo triết lý là sự không khớp về kiểu có thể là lỗi mã hóa, Theo truyền thống DB2 đã đi theo các quy tắc định kiểu mạnh, mà các chuỗi và các số không thể được so sánh ở đó, trừ khi các chuỗi và các số này là khuôn mẫu rõ ràng đối với các chuỗi và các số khác.
Thật không may, khi một ứng dụng Oracle sử dụng cách định kiểu yếu trong SQL của nó, ứng dụng đó đã quên biên dịch theo DB2 từ trước. Trong DB2 9.7, việc tạo khuôn mẫu ẩn (hay định kiểu yếu) đã được thêm vào. Đó là, các chuỗi và các con số có thể được so sánh, gán và hoạt động theo một cách rất linh hoạt.
Ngoài ra, các NULL không định kiểu có thể được sử dụng ở nhiều vị trí, trong khi các dấu tham số không định kiểu có thể được sử dụng hầu như ở bất kỳ đâu, nhờ việc sẵn sàng làm theo. Đó là, DB2 sẽ không giải quyết kiểu của một dấu tham số cho đến khi nó đã thấy giá trị thực tế đầu tiên.
Để bổ sung thêm việc tạo khuôn mẫu ẩn, DB2 cũng hỗ trợ việc tạo mặc định các tham số thủ tục cũng như kết hợp các đối số cho các tham số theo tên.
Thư viện hàm lập sẵn mở rộng trong DB2
Tất cả các RDBMS cung cấp các thư viện của các hàm để hoạt động trên dữ liệu. Vấn đề là không có hai hàm sử dụng cùng tên, ngay cả khi cuối cùng chức năng là rất giống nhau.
Ngoài việc tập các hàm truyền thống của riêng mình, DB2 bây giờ hỗ trợ một thư viện tương thích với Oracle. Danh sách sau cung cấp một tổng quan ngắn gọn, chưa phải đầy đủ:
- Hàm biến đổi và hàm khuôn mẫu
TO_DATE
TO_CHAR
TO_CLOB
TO_NUMBER
TO_TIMESTAMP
- Phép tính số học ngày tháng
EXTRACT
ADD_MONTHS
MONTHS_BETWEEN
NEXT_DAY
- Cộng (+) thêm phân số của các ngày.
- Thao tác chuỗi
LPAD
RPAD
INSTR
INITCAP
- Các phần mở rộng cho
SUBSTR
- Các đặc tính khác nhau
NVL
DECODE
LEAST
GREATEST
BITAND
Sự chồng lấn đã tăng đáng kể trong các hàm được hỗ trợ giữa hai sản phẩm hàm ý một sự thành công của hộp bên ngoài được cải thiện rất nhiều cho phép một ứng dụng Oracle chuyển sang DB2.
Hỗ trợ phương ngữ Oracle SQL
Bài viết này, cho đến nay, đã trình bày sự tương tranh, các kiểu dữ liệu, định kiểu và các hàm. Tuy nhiên, các khác biệt giữa Oracle và DB2 vẫn còn tiếp. Các kết cấu thực sự của các phương ngữ SQL, các từ khóa và các ngữ nghĩa của chúng khác nhau trong một số lĩnh vực. Mỗi sản phẩm cũng hỗ trợ một số tính năng mà các sản phẩm đơn giản khác không có. Khi các tính năng này là phổ biến, chúng hạn chế khả năng gửi đi SQL chung đối với cả hai sản phẩm. Trong số nhiều cải tiến ngôn ngữ nhỏ và lớn, Bảng 6 liệt kê một số điểm nổi bật:
Bảng 6. Hỗ trợ SQL mới
Điều này hoàn thành tổng quan về các thay đổi được thực hiện với DB2 để cho các ứng dụng Oracle gửi đi SQL dựa vào cơ sở dữ liệu có thể chạy hầu như không thay đổi. Tuy nhiên, có các phần chính của nhiều ứng dụng đang thực hiện tại chính máy chủ. Ngôn ngữ lựa chọn phía máy chủ cho các ứng dụng Oracle là PL/SQL. Không có sự khẳng định nào về tính tương thích có thể được thực hiện nghiêm túc mà không có sự hỗ trợ cho PL/SQL.
DB2 hỗ trợ cho PL/SQL
Thông thường, khi một ứng dụng đang được chuyển từ một sản phẩm này sang một sản phẩm khác, ngôn ngữ SQL và ngôn ngữ thủ tục được dịch từ một phương ngữ SQL sang phương ngữ khác. Điều này đặt ra một số vấn đề:
- Mã dịch kết quả có xu hướng rắc rối do tự động hóa và sự không phối hợp đồng bộ giữa phương ngữ nguồn và phương ngữ đích.
- Các nhà phát triển ứng dụng không quen thuộc với phương ngữ SQL đích. Điều đó làm cho nó khó gỡ rối mã đã gửi đi. Theo thời gian, việc bảo trì tiếp theo trở thành một sự thách thức do sự thiếu các kỹ năng.
- Trong trường hợp của các ứng dụng đóng gói, việc dịch cần phải được lặp lại cho mỗi bản phát hành mới của ứng dụng.
- Cuối cùng, kết quả là một bản mô phỏng, theo định nghĩa thì nó chạy chậm hơn so với bản ban đầu.
Để tránh những vấn đề này, DB2 9.7 có hỗ trợ PL/SQL riêng. Điều này có nghĩa là gì?
Như bạn thấy trong Hình 3, máy DB2 bây giờ gồm một trình dịch PL/SQL bên cạnh trình biên dịch SQL PL. Cả hai trình biên dịch tạo mã máy ảo cho Máy chạy thực thống nhất SQL (Unified Runtime Engine) của DB2. Điều quan trọng cần lưu ý là các công cụ theo dõi và phát triển như Optim Development Studio được gắn vào trong DB2 ở mức máy chạy thời gian thực.
Hình 3. Hỗ trợ trình biên dịch PL/SQL
Sự tích hợp của PL/SQL vào trong DB2 như là một ngôn ngữ thủ tục lớp đầu tiên có nhiều hàm ý:
- Không phải dịch. Mã nguồn vẫn giữ nguyên như nó đang có trong danh mục lược đồ.
- Các nhà phát triển có thể tiếp tục làm việc theo ngôn ngữ mà họ đã quen thuộc. Không có nhu cầu nào để di chuyển logic sang phương ngữ của DB2 thậm chí nếu logic mới được viết bằng SQL PL. Các thường trình sử dụng các phương ngữ khác nhau có thể gọi cho nhau.
- Các nhà cung cấp ứng dụng đóng gói có thể sử dụng một mã nguồn dựa vào cả Oracle lẫn DB2.
- Cả PL/SQL và SQL PL đều đưa ra mã máy ảo như nhau cho SQL Unified Runtime Engine của DB2. Do đó, theo thiết kế, cả PL/SQL lẫn SQL PL thực hiện ở cùng một tốc độ.
- Do hạ tầng của trình gỡ rối gắn trực tiếp vào SQL Unified Runtime Engine, nên PL/SQL được hỗ trợ tự nhiên bởi Optim Development Studio.
Hình 4 minh hoạ một phiên gỡ rối PL/SQL. Trình gỡ rối này hỗ trợ các tính năng tiêu chuẩn như bước vào, bước ra và các điểm ngắt (breakpoint). Ngoài ra, nó cho phép người dùng thay đổi các biến PL/SQL tại chỗ trong khi chương trình đang chạy.
Hình 4. Hỗ trợ trình gỡ rối PL/SQL trong DB2
Các chi tiết cú pháp PL/SQL
Vì vậy, sự hỗ trợ PL/SQL muốn nói chính xác điều gì? Trước tiên, có sự hỗ trợ cú pháp cốt lõi. DB2 hỗ trợ tất cả các cấu trúc chung của PL/SQL, chẳng hạn như:
- nếu thì, ngược lại (if then else).
- các vòng lặp while.
- := phép gán.
- các biến và hằng cục bộ.
- #PRAGMA EXCEPTION và xử lý các trường hợp ngoại lệ.
- Các dạng khác nhau cho các vòng lặp (phạm vi, con trỏ và truy vấn).
- %TYPE and %ROWTYPE giữ chặt các biến và các tham số cho các đối tượng khác.
- Các giao dịch #PRAGMA AUTONOMOUS, cho phép các thủ tục nào thực thi trong một giao dịch riêng.
Hỗ trợ đối tượng PL/SQL
Có thể sử dụng PL/SQL trong các đối tượng khác nhau cho phép logic thủ tục:
- Các hàm vô hướng.
- Trước các bộ kích hoạt của mỗi hàng.
- Sau các bộ kích hoạt của mỗi hàng.
- Các thủ tục.
- Các khối ẩn danh.
- Các gói PL/SQL.
Hỗ trợ các gói PL/SQL
Hầu hết PL/SQL trong các ứng dụng Oracle được chứa trong cái gọi là Các gói (PACKAGE). Một gói PL/SQL —không lẫn với một gói DB2— là một bộ sưu tập của các đối tượng riêng với khả năng phân biệt giữa các đối tượng có thể truy cập bên ngoài và những đối tượng chỉ là các trình trợ giúp để sử dụng bên trong gói. ANSI SQL tương đương với một gói được gọi là MODULE. Bây giờ DB2 cung cấp hỗ trợ cho các mô đun SQL ANSI cũng như các gói PL/SQL. Đặc biệt, cung cấp các khả năng sau đây:
- GÓI TẠO [HOẶC THAY THẾ] (CREATE [OR REPLACE] PACKAGE), xác định các mẫu ban đầu cho các thường trình nhìn thấy bên ngoài. Nó cũng xác định tất cả các đối tượng không theo thủ tục, nhìn thấy bên ngoài, như các biến và các kiểu.
- THÂN GÓI TẠO [HOẶC THAY THẾ] (CREATE [OR REPLACE] PACKAGE BODY), triển khai thực hiện tất cả các thường trình riêng và chung cũng như tất cả các đối tượng riêng khác.
- Trong một gói hoặc thân gói, các đối tượng sau đây có thể được định
nghĩa:
- Các biến và các hằng số.
- Các kiểu dữ liệu.
- Các ngoại lệ.
- Các hàm vô hướng.
- Các thủ tục.
- Các con trỏ.
- Khởi tạo gói.
- Các từ đồng nghĩa chung trên các gói.
DB2 cung cấp các gói lập sẵn phổ biến
Một số các ứng dụng Oracle sử dụng các gói do RDBMS cung cấp. Đặc biệt, các thư viện cung cấp việc tạo báo cáo, e-mail hoặc truyền thông chéo có thể rất phổ biến. Để tạo điều kiện hỗ trợ các ứng dụng này cho DB2, DB2 cung cấp các gói được liệt kê trong Bảng 7:
Bảng 7. DB2 cung cấp các gói kèm theo
Các phần mở rộng JDBC cho riêng Oracle
JDBC là một giao diện khách hàng Java chuẩn. Tuy nhiên, có các phần mở rộng đã được thêm vào trình điều khiển JDBC của Oracle để hỗ trợ các kiểu dữ liệu không theo tiêu chuẩn riêng.
Để tối đa hóa mức độ tương thích với các ứng dụng dựa trên công nghệ Java, trình điều khiển DB2 9.7 JDBC cung cấp cùng với vài thứ khác, sự hỗ trợ cho các thủ tục gọi với con trỏ tham chiếu và các tham số VARRAY.
Sự hỗ trợ của kịch bản lệnh SQL*Plus khi sử dụng CLPPlus
Đôi khi các kịch bản lệnh DDL và ngay cả các báo cáo được viết bằng cách sử dụng bộ xử lý dòng lệnh SQL*Plus. Để thuận tiện cho việc chuyển các kịch bản lệnh này cũng như các kỹ năng của người phát triển đang viết chúng, DB2 cung cấp một bộ xử lý dòng lệnh tương thích-SQL*Plus, được gọi là CLPPlus. Công cụ này có các chức năng sau:
- Các tuỳ chọn lệnh tương thích-SQL*Plus.
- Thay thế biến.
- Tạo định dạng cột.
- Các hàm lập báo cáo.
- Các biến điều khiển.
Hình 5. Công cụ CLPLus tương thích-SQL*Plus
Cho phép DB2 kéo và thả càng dễ dàng càng tốt
Do sự liên kết chặt chẽ của DB2 với PL/SQL và Oracle SQL, bây giờ không cần thiết có một bộ công cụ chuyển dịch phức tạp. Thay vào đó, bạn có thể sử dụng Công cụ dịch chuyển dữ liệu của IBM (IBM Data Movement Tool) để đơn giản kéo và thả các bảng, các gói hoặc toàn bộ các lược đồ từ Oracle sang DB2. Chỉ cần các điều chỉnh tối thiểu trên cơ sở ngoại lệ hoặc di chuyển một ứng dụng sang DB2, hoặc sửa đổi một ứng dụng sao cho cùng một nguồn có thể hoạt động dựa vào cả DB2 và cả Oracle.
Các bước có thể đơn giản như:
- Thiết lập các biến đăng ký cần thiết:
db2set DB2_COMPATIBILITY_VECTOR=ORA
db2set DB2_DEFERRED_PREPARE_SEMANTICS=YES
- Khởi động lại trình quản lý cơ sở dữ liệu:
db2stop
db2start
- Tạo ra một cơ sở dữ liệu tương thích-Oracle:
db2 create database mydb pagesize 32 K
db2 update db cfg for mydb using auto_reval deferred_force
- Khởi động IBM Data Movement Tool và kết nối vào cơ sở dữ liệu Oracle
và DB2 (xem Hình 6). Một khi kết nối được thiết
lập, bạn có thể chọn lấy ra chỉ DDL hoặc cả hai DDL và dữ liệu. Cuối
cùng, bạn có hai lựa chọn: hoặc bạn triển khai trực tiếp bằng cách
thực hiện các kịch bản lệnh đã tạo ra hoặc bạn tiếp tục với ô triển
khai tương tác. (Cái sau được khuyến cáo cho hầu hết các ứng
dụng không quan trọng).
Hình 6. Kéo và thả các lược đồ Oracle vào DB2 khi sử dụng IBM Data Movement Tool
- Di chuyển các lược đồ dự kiến từ Oracle sang DB2 khi sử dụng triển
khai tương tác (xem Hình 7). Trong chế độ
triển khai tương tác, bạn thấy một cây-dẫn hướng (nav-tree)
hiển thị tất cả các đối tượng được trích ra từ cơ sở dữ liệu Oracle.
Chọn tất cả các đối tượng và thực hiện tùy chọn trình đơn triển khai.
Kết quả là, công cụ sẽ sao chép các đối tượng qua DB2 và ghi lại sự
phát triển của nó. Một số đối tượng có thể không triển khai thành công
và công cụ này cho phép bạn tùy chọn để làm việc với những đối tượng
đó. Khi lựa chọn một đối tượng, bạn sẽ thấy DDL cùng với lỗi DB2 gặp
phải. Lúc này bạn có thể sửa định nghĩa khi cần và triển khai lại bằng
cách sử dụng trình soạn thảo lập sẵn. Mục đích là để chuyển dịch tương
tác tất cả các đối tượng sang DB2 trên một cơ sở ngoại lệ.
Hình 7. Kéo và thả các lược đồ Oracle vào DB2 khi sử dụng IBM Data Movement Tool
Đánh giá sự hỗ trợ cho DB2
Để cho phép ứng dụng của bạn chuyển sang DB2 9.7 dễ dàng vậy sao? Câu trả lời đương nhiên là, còn tùy. IBM có một công cụ bên trong có tên là MEET DB2, có thể phân tích tất cả các đối tượng trong cơ sở dữ liệu Oracle của bạn và cho điểm nó. Nó tạo một báo cáo về cái sẽ thực hiện và nơi cần điều chỉnh. Đại diện tài khoản IBM của bạn hoặc đầu mối bán hàng có thể chạy tiện ích này để giúp cung cấp nhanh chóng một đánh giá về khả năng tương thích của cơ sở dữ liệu Oracle hiện tại của bạn với DB2.
Hình 8. Công cụ báo cáo MEET DB2 cho việc đánh giá
Trong giai đoạn thử nghiệm beta một năm của bản DB2 9.7, nhiều ứng dụng với hơn 750.000 dòng mã PL/SQL đã được phân tích chi tiết với tỷ lệ chuyển đổi sử dụng được ngay trung bình là 90 đến 99%.
Hình 9. Tỷ lệ trung bình 98% cho các câu lệnh được hỗ trợ
Các hạn chế
PL/SQL, thư viện gói kèm theo và CLPPlus hiện nay không có sẵn cho DB2Express, DB2 Express-C và DB2 Personal Editions (các ấn bản dành cho DB2 cá nhân).
Tóm tắt
Nhờ trợ giúp của SQL nhiều phương ngữ vốn có, DB2 9.7 cho phép hỗ trợ dễ dàng các ứng dụng Oracle chuyển sang DB2. Các nhà cung cấp các ứng dụng đóng gói có thể đưa ra các ứng dụng của họ trên cả Oracle lẫn DB2 với chi phí phát sinh tối thiểu. Các khách hàng có thể tự do lựa chọn nhà cung cấp công nghệ họ cần, mà không bị hạn chế bởi các sự lựa chọn trong quá khứ.
Để thử nghiệm các tính năng này, bạn có thể tải về một phiên bản dùng thử của DB2 9.7 (xem Tài nguyên).
Câu hỏi thường gặp
Phiên bản nào của Oracle có hỗ trợ DB2 9.7?
Mức độ bao phủ được tạo ra cho các phương ngữ SQL và PL/SQL hoàn toàn dựa vào những gì đang được các ứng dụng sử dụng. Có những tính năng đã được giới thiệu trong các bản phát hành gần đây như là Oracle 11g được hỗ trợ, trong khi một số cấu trúc có sẵn trong Oracle 8i không được hỗ trợ. Trong một nghiên cứu về 18 ứng dụng tổng cộng có trên 750,000 dòng, 90 đến 99% mã được chuyển sang DB2 mà không thay đổi. Nhiều việc điều chỉnh còn lại có thể được thực hiện tự động hoặc nếu không thì bằng tay.
Ứng dụng Oracle của tôi sẽ chạy trên DB2 nhanh như thế nào?
Đó là câu hỏi đáng giá triệu đô la! Thật không may, các điều khoản cấp phép của Oracle cấm bất cứ ai công bố kết quả thử nghiệm khi chưa được sự đồng ý trước bằng văn bản. Khỏi cần phải nói, chúng tôi đã không bận tâm phải hỏi. Tuy nhiên, bằng cách thiết kế riêng của mình và được xác nhận bằng việc kiểm tra so sánh bảo đảm chất lượng , một ứng dụng được viết dựa vào PL/SQL trên DB2 cũng nhanh như một ứng dụng được viết dựa vào SQL PL trên DB2. Các nhà cung cấp, những người đã qua qui trình hỗ trợ này đã ngạc nhiên vui vẻ.
Nó đã cung cấp các tính năng này cho bao nhiêu công việc?
Không giống nhiều như người ta có thể nghĩ. Một số công việc khởi đầu,
như
CONNECT BY và
NUMBER, đã làm việc với DB2 9.5 theo kiểu chiến thuật. Một
cách nghiêm túc, nỗ lực này đã được hoàn thành trong vòng ít hơn 18 tháng.
Những khó khăn chung trong việc cho phép chuyển từ Oracle sang DB2 là gì?
Tính tương thích của DB2 không rõ ràng 100%. Như vậy có khả năng sẽ có
một số trục trặc khi lần đầu tiên bạn chuyển sang DB2. Tất nhiên, nhiều
khó khăn không quan trọng và dễ dàng sửa chữa. Ví dụ, DB2 hỗ trợ các bộ
kích hoạt PL/SQL, nhưng không cho phép kết hợp các hành động của bộ kích
hoạt. Đó là, một bộ kích hoạt được chia sẻ cho các hoạt động
UPDATE,
DELETE và
INSERT. Bây giờ, hãy đưa ra một bộ kích
hoạt nhiều hoạt động PL/SQL, thật khá dễ dàng để sao chép nó thành ba bộ
kích hoạt DB2 PL/SQL khi sử dụng một biến boolean để
INSERTED,
UPDATED và
DELETED.
Tài nguyên
Học tập
- Khởi chạy DB2 9.7: Nhận một tổng quan về các giá trị của DB2.
- Trò chuyện với phòng thí nghiệm: Hãy nghe và xem các video về các chủ đề như là việc đi sâu vào kỹ thuật DB2 9.7 và một phiên bản webcast của bài viết này.
- "Chuyển sang DB2 dễ dàng" (youTube): Thực hiện theo một trình diễn video về tổng quan của hỗ trợ ứng dụng DB2.
- "DB2 9.7 CLPPlus" (youTube): Một video nào trình diễn cách sử dụng của trình tiện ích shell CLPPlus tương thích-SQL *Plus.
- "DB2 9.7: Hỗ trợ PL/SQL riêng" (youTube): Xem một đoạn video ngắn giới thiệu nhiều tính năng PL/SQL được DB2 9.7 hỗ trợ.
- "Break Free with IBM DB2 9.7" (youTube): Xem một video về nhiều khách hàng và các giấy chứng nhận của đối tác.
- Vùng Quản lý thông tin của developerWorks: Tìm hiểu thêm về Quản lý thông tin. Tìm tài liệu hướng dẫn kỹ thuật, các bài báo hướng dẫn, giáo dục, tải, thông tin sản phẩm và nhiều hơn nữa.
- Theo sát các sự kiện kỹ thuật và webcast của developerWorks.
Lấy sản phẩm và công nghệ
- DB2 9.7 for Linux, Unix, and Windows: Tải về một phiên bản dùng thử miễn phí của DB2 9.7 cho Linux, Unix và Windows.
- DB2 Express-C 9.7: Tải bản DB2 Express-C 9.7, một phiên bản miễn phí của máy chủ cơ sở dữ liệu Express DB2 cho cộng đồng.
- Xây dựng các dự án phát triển tiếp theo của bạn với phần mềm dùng thử IBM, có sẵn để tải về trực tiếp từ developerWorks.
Thảo luận
- Tham gia vào developerWorks blogs và dành tâm trí cho cộng đồng developerWorks của tôi; với hồ sơ cá nhân của bạn và trang chủ tuỳ chỉnh, bạn có thể tùy chỉnh developerWorks theo ý thích và tương tác với những người dùng developerWorks khác.
Bình luận
-
Vùng dữ liệu trên developerWorks
Khám phá các bài viết xoay quanh lĩnh vực dữ liệu, Quản lý hệ thống thông tin
-
Vùng mã nguồn mở trên developerWorks
Xem các bài viết về HTML, CSS, JavaScript,...
-
Điện toán đám mây
Tìm hiểu về điện toán đám mây

markdown:
## Động lực
Tháng 3 vừa rồi, tại một cuộc thuyết trình CeBIT mà tôi đã tổ chức về DB2 9.7, tôi đã đốt cháy một bộ loa máy tính 110V do tôi đã không thận trọng cắm nó vào lưới điện 230V của nước Đức mà không cho qua một biến áp. Trong cùng chuyến đi đó, tôi cũng đã phá hỏng bộ sạc điện cho bàn chải đánh răng chạy điện của tôi và máy cạo râu của tôi với các sự cố tương tự. Bỏ qua sự bất lực của tôi như là bài học từ các sai lầm sang một bên, việc này xảy ra như không có gì bất ngờ đúng như một trong các câu châm ngôn yêu thích của tôi (không rõ nguồn gốc) là "Vấn đề với các tiêu chuẩn là có bao nhiêu tiêu chuẩn".
Trong thế giới của các hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS), chúng tôi may mắn có ít nhất ba tiêu chuẩn chính và vô số các sự thay đổi theo các tiêu chuẩn đó:
- ANSI SQL và ANSI SQL/PSM
- Oracle SQL và PL/SQL
- Sybase và Microsoft TSQL
Hình 1 mô tả bằng một sơ đồ Venn cách các phương ngữ SQL chồng lên nhau:
##### Hình 1. Sự hỗ loạn Babylon của SQL
![ chỉ ra các vòng tròn của các tiêu chuẩn chồng nhau](confusion.gif)
Bất cứ khi nào bạn viết một ứng dụng, bạn phải tiến hành lựa chọn sử dụng nhà cung cấp RDBMS nào. Một khi bạn đã thực hiện sự lựa chọn đó, về cơ bản bạn được cam kết. Bất kỳ cố gắng nào để chuyển đổi các nhà cung cấp để tận dụng giá thấp hơn, công nghệ tốt hơn hoặc quan hệ đối tác tốt hơn bị cản trở do mã thừa kế cần được viết lại nhiều hơn, trước khi nó có thể được dùng với một RDBMS khác. Ngoài ra, bộ kỹ năng của bạn không thể chuyển từ một sản phẩm này sang một sản phẩm khác dễ dàng như bạn mong đợi.
IBM DB2 9.7 cho Linux, UNIX và Windows (DB2) nhằm hạ thấp đáng kể những rào cản này cho các ứng dụng được viết cho Oracle khi cho phép các ứng dụng đó chuyển sang DB2. Điều này cung cấp cho các khách hàng và các nhà cung cấp khả năng lựa chọn một DBMS đựa theo sự xuất sắc của nó, chứ không theo lịch sử ứng dụng.
## DB2 9.7 bổ sung thêm các tính năng tương thích của Oracle
Để cho phép một ứng dụng được viết cho một RDBMS chạy trên nền khác gần như không cần thay đổi, nhiều đoạn mã phải nằm đúng vị trí. Các cơ chế khóa, các kiểu dữ liệu, SQL, ngôn ngữ theo thủ tục khác nhau nằm trên máy chủ và thậm chí cả các giao diện khách hàng được chính ứng dụng sử dụng cần phải được liên kết không chỉ theo cú pháp, mà còn theo ngữ nghĩa.
Tất cả các bước này đã được thực hiện trong DB2. Các thay đổi là ngoại lệ, không phải là quy luật (IBM có thể nhanh chóng đánh giá các thay đổi của ứng dụng cần thiết). Bảng 1 cung cấp một tổng quan ngắn gọn về các tính năng thường được sử dụng:
##### Bảng 1. Các tính năng thường được sử dụng
|Oracle||-->||DB2|
|Điều khiển tương tranh||-->||Hỗ trợ có sẵn|
|Phương ngữ SQL||-->||Hỗ trợ có sẵn|
|PL/SQL||-->||Hỗ trợ có sẵn|
|Các gói PL/SQL||-->||Hỗ trợ có sẵn|
|Các gói kèm theo||-->||Hỗ trợ có sẵn|
|Khách hàng JDBC với các phần mở rộng||-->||Hỗ trợ có sẵn|
|Kịch bản lệnh SQL*Plus||-->||Hỗ trợ có sẵn|
Với DB2 9.7, bạn không cần chuyển một ứng dụng nữa. Bạn chỉ
*kích
hoạt* ứng dụng. Trong trường hợp của một ứng dụng đóng gói, nó có
thể chia sẻ *một nguồn* cho cả hai DB2 và Oracle.
Nói cách khác, việc cho phép một ứng dụng Oracle chuyển sang DB2 không trở nên phức tạp hơn việc kích hoạt một Chương trình-C được viết cho HP-UX để chạy trên AIX.
## Điều khiển tương tranh
Trong quá khứ, một trong những sự khác biệt nổi bật nhất giữa Oracle và DB2 là cách tiếp cận để kiểm soát điều khiển tương tranh. Các cụm từ dễ nhớ là: "Những người đọc không cản trở những người viết và những người viết không cản trở những người đọc".
##### Bảng 2. Hành vi tương tranh của Oracle
|Giao dịch đang chờ xử lý||Hành vi||Giao dịch mới|
|Người đọc||không ngăn chặn||Người đọc|
|Người đọc||không ngăn chặn||Người viết|
|Người viết||không ngăn chặn||Người đọc|
|Người viết||ngăn chặn||Người viết|
Không đi vào chi tiết về các mức cô lập, chỉ cần nói rằng đa số các
ứng dụng có sử dụng Sự cô lập mức câu lệnh (
*Statement Level
Isolation*) mặc định của Oracle sẽ chỉ làm việc tốt khi sử dụng mặc
định của DB2 về Sự ổn định của con trỏ ( *Cursor
Stability*-CS).
Tuy nhiên, theo truyền thống, CS đã được triển khai sao cho những người viết ngăn chặn những người đọc và trong một số trường hợp, những người đọc có thể ngăn chặn những người viết. Lý do là ở chỗ, theo truyền thống, một giao dịch dưới sự cô lập CS sẽ "chờ kết quả" của các thay đổi của một giao dịch tương tranh đang chờ xử lý.
##### Bảng 3. Hành vi tương tranh của DB2 truyền thống với CS
|Giao dịch đang chờ xử lý||Hành vi||Giao dịch mới|
|Người đọc||không ngăn chặn||Người đọc|
|Người đọc||hiếm khi ngăn chặn||Người viết|
|Người viết||ngăn chặn||Người đọc|
|Người viết||ngăn chặn||Người viết|
Hóa ra là không có lý do ngữ nghĩa nào là tại sao một giao dịch
đang chạy dưới sự cách ly CS lại
*chờ kết quả* khi gặp phải một hàng
đã thay đổi. Một hành vi thỏa đáng tương tự là đọc các phiên bản *đã cam
kết hiện tại* của dòng đã thay đổi.
Hành vi này đã được thực
hiện trong DB2 9.7. Điều đã xảy ra là DB2 đơn giản lấy ra phiên bản hiện
đã cam kết hiện tại của một hàng bị khóa từ nhật ký (log). Trong hầu hết
các trường hợp chung, hàng đó vẫn còn nằm trong bộ đệm log do sự thay đổi
này vẫn chưa được cam kết. Nhưng ngay cả khi hàng đã được viết ra
*và* cũng đã bị ghi đè trong bộ đệm log DB2 sẽ biết chính xác tìm
nó ở đâu, để cho một IO sẽ đưa phiên bản mong muốn vào nhóm bộ đệm
(bufferpool).
Hãy tưởng tượng (xem Hình 2) một người dùng đang cập
nhật một tên trong một bảng nhân viên. Trước khi người dùng đó đã cam kết
thay đổi, một người dùng khác quét bảng này. Theo truyền thống, người sử
dụng thứ hai sẽ phải đợi cho người sử dụng đầu tiên cam kết hoặc khôi phục
(rollback). Nhờ
*đọc dữ liệu đã cam kết hiện tại*, hoạt động quét của
người dùng thứ hai sẽ đơn giản lấy ra phiên bản của hàng từ bộ đệm log mà
nó không chứa các thay đổi của người sử dụng đầu tiên.
##### Hình 2. Những người viết không ngăn chặn những người đọc
![ Những người viết không ngăn chặn những người đọc](concurrency.gif)
Điều quan trọng cần lưu ý rằng hành vi này:
- Không đưa vào đối tượng mới nào như là một đoạn khôi phục.
- Không có chi phí hiệu năng nào cho người viết do log cần phải được viết không theo hệ thống.
- Không thể gây ra bất cứ tình hình nào như một "bản chụp quá cũ" vì trong trường hợp không chắc có xảy ra tệp log cần thiết đã được lưu trữ (trong khi một giao dịch vẫn còn mở!), DB2 chỉ đơn giản sẽ khôi phục lại và đợi khóa để đi tiếp.
Ngoài những thay đổi này, các kỹ thuật tránh phải thêm khóa đã được đưa vào DB2 để loại bỏ một người đọc đang nắm giữ một khóa theo chế độ cô lập CS.
##### Bảng 3. Hành vi tương tranh của DB2 mới với CS
|Giao dịch đang chờ xử lý||Hành vi||Giao dịch mới|
|Người đọc||không ngăn chặn||Người đọc|
|Người đọc|không ngăn chặn |Người viết|
|Người viết|không ngăn chặn |Người đọc|
|Người viết||ngăn chặn||Người viết|
Như bạn thấy, các hành vi tương tranh bây giờ giống hệt với các hành vi của Oracle. Thực tế, cơ sở dữ liệu DB2 vừa mới được tạo ra thể hiện hành vi này theo mặc định.
## Các kiểu dữ liệu mới
Tâm điểm của mỗi cơ sở dữ liệu là dữ liệu của nó. Các kiểu không khớp hoặc các ngữ nghĩa của các kiểu này không khớp có thể tác động đến khả năng cho phép một ứng dụng chuyển sang ứng dụng RDBMS khác. Do đó để cho phép các ứng dụng Oracle chạy trên DB2, điều quan trọng là phải hỗ trợ các kiểu cơ sở không tiêu chuẩn, như là chuỗi, các ngày tháng và các số. Ngoài việc điều chỉnh các kiểu cơ sở này, có các kiểu khác, phức tạp hơn được sử dụng phổ biến trong PL/SQL của Oracle, nó đã được thêm vào trong DB2 9.7..
##### Bảng 5. Các kiểu dữ liệu DB2 mới
|Kiểu dữ liệu||Mô tả|
|NUMBER||Sự hỗ trợ NUMBER và NUMBER (p [, s]) đã được thêm vào dựa trên DECFLOAT (với bản tăng tốc phần cứng Power6) và số thập phân (DECIMAL).|
|VARCHAR2||Hoạt động của kiểu VARCHAR2 bao gồm các chuỗi rỗng đang được hiểu như là NULL và kéo theo sự đối chiếu phân biệt khoảng trống.|
|Oracle DATE||Một cơ sở dữ liệu trong chế độ DATE bao gồm thành phần TIME ngoài ngày tháng của lịch.|
|TIMESTAMP(n)||Thang đo phân số của giây có thể được chọn bất kỳ giữa 0 (ngày + thời gian) lên đến 12 (pico giây).|
|BOOLEAN||Kiểu này có thể được sử dụng trong logic thủ tục, các biến và các tham số cho các thường trình.|
|VARRAY||Sự hỗ trợ mảng (ARRAY) trong các thủ tục đã được mở rộng để hỗ trợ các phương thức kiểu dáng VARRAY và cú pháp.|
|INDEX BY||Ngoài các mảng thông thường, DB2 cũng hỗ trợ các mảng kết hợp.|
|ROW TYPE||Kiểu hỗn hợp này có thể được sử dụng trong các biến và các tham số và như là một phần tử cho các mảng và các mảng kết hợp.|
|Ref Cursor type||Các con trỏ có thể được gán cho các biến hoặc chuyển qua xung quanh khi sử dụng các tham số.|
## Tạo khuôn mẫu ẩn và độ phân giải kiểu
"Nếu nó đi như một con vịt và nó nói như vịt, thì sau đó nó phải là một con vịt".
"Nếu nó đi như một con vịt và nó nói như vịt, thì sau đó nó phải là một con vịt". Đây là câu thần chú của nhiều ngôn ngữ mới như PHP và Ruby. Mỗi chữ là một chuỗi và sau đó sử dụng như một kiểu khác dựa vào ngữ cảnh. Trung thành với tiêu chuẩn SQL và đi theo triết lý là sự không khớp về kiểu có thể là lỗi mã hóa, Theo truyền thống DB2 đã đi theo các quy tắc định kiểu mạnh, mà các chuỗi và các số không thể được so sánh ở đó, trừ khi các chuỗi và các số này là khuôn mẫu rõ ràng đối với các chuỗi và các số khác.
Thật không may, khi một ứng dụng Oracle sử dụng cách định kiểu yếu trong SQL của nó, ứng dụng đó đã quên biên dịch theo DB2 từ trước. Trong DB2 9.7, việc tạo khuôn mẫu ẩn (hay định kiểu yếu) đã được thêm vào. Đó là, các chuỗi và các con số có thể được so sánh, gán và hoạt động theo một cách rất linh hoạt.
Ngoài ra, các NULL không định kiểu có thể được sử dụng ở nhiều vị
trí, trong khi các dấu tham số không định kiểu có thể được sử dụng hầu như
ở bất kỳ đâu, nhờ việc
*sẵn sàng làm theo*. Đó là, DB2 sẽ không giải
quyết kiểu của một dấu tham số cho đến khi nó đã thấy giá trị thực tế đầu
tiên.
Để bổ sung thêm việc tạo khuôn mẫu ẩn, DB2 cũng hỗ trợ việc tạo mặc định các tham số thủ tục cũng như kết hợp các đối số cho các tham số theo tên.
## Thư viện hàm lập sẵn mở rộng trong DB2
Tất cả các RDBMS cung cấp các thư viện của các hàm để hoạt động trên dữ liệu. Vấn đề là không có hai hàm sử dụng cùng tên, ngay cả khi cuối cùng chức năng là rất giống nhau.
Ngoài việc tập các hàm truyền thống của riêng mình, DB2 bây giờ hỗ trợ một thư viện tương thích với Oracle. Danh sách sau cung cấp một tổng quan ngắn gọn, chưa phải đầy đủ:
**Hàm biến đổi và hàm khuôn mẫu**
TO_DATE
TO_CHAR
TO_CLOB
TO_NUMBER
TO_TIMESTAMP
**Phép tính số học ngày tháng**
EXTRACT
ADD_MONTHS
MONTHS_BETWEEN
NEXT_DAY
- Cộng (+) thêm phân số của các ngày.
**Thao tác chuỗi**
LPAD
RPAD
INSTR
INITCAP
- Các phần mở rộng cho
SUBSTR
**Các đặc tính khác nhau**
NVL
DECODE
LEAST
GREATEST
BITAND
Sự chồng lấn đã tăng đáng kể trong các hàm được hỗ trợ giữa hai sản phẩm hàm ý một sự thành công của hộp bên ngoài được cải thiện rất nhiều cho phép một ứng dụng Oracle chuyển sang DB2.
## Hỗ trợ phương ngữ Oracle SQL
Bài viết này, cho đến nay, đã trình bày sự tương tranh, các kiểu dữ liệu, định kiểu và các hàm. Tuy nhiên, các khác biệt giữa Oracle và DB2 vẫn còn tiếp. Các kết cấu thực sự của các phương ngữ SQL, các từ khóa và các ngữ nghĩa của chúng khác nhau trong một số lĩnh vực. Mỗi sản phẩm cũng hỗ trợ một số tính năng mà các sản phẩm đơn giản khác không có. Khi các tính năng này là phổ biến, chúng hạn chế khả năng gửi đi SQL chung đối với cả hai sản phẩm. Trong số nhiều cải tiến ngôn ngữ nhỏ và lớn, Bảng 6 liệt kê một số điểm nổi bật:
##### Bảng 6. Hỗ trợ SQL mới
|Tính năng||Mô tả|
|Đệ qui ||DB2, cho đến nay, đã hỗ trợ một lệnh đệ qui ANSI SQL. Bây giờ
|
|Cú pháp (+) join||Cú pháp này thực sự bị Oracle ngăn cản, nhưng có nhiều ứng dụng và
các nhà phát triển những người vẫn còn sử dụng dạng này của cú
pháp |
|Bảng ||Một bảng một hàng, một cột đã sử dụng khắp nơi trong các ứng dụng Oracle như là một bù nhìn (dummy).|
|Các cột giả ||Cột giả này thường được sử dụng để hạn chế số lượng các hàng trả về và để đếm các hàng trong một tập kết quả.|
|Các cột giả ||Các Rowid được sử dụng để nhanh chóng lấy ra một hàng mà trước đây đã tìm thấy dựa theo địa chỉ vật lý của nó.|
|Phép toán SQL ||Trong Oracle, |
|Cấu trúc |
|Một từ đồng nghĩa chung là một bí danh mà không có một tên lược đồ. DB2 hỗ trợ các từ đồng nghĩa chung cho các đối tượng bảng, các trình tự và các gói PL/SQL.|
|DB2 hỗ trợ các bảng tạm thời toàn cầu được tạo ra ngoài các bảng toàn cầu tạm thời được khai báo.|
|Câu lệnh bảng ||Câu lệnh này nhanh chóng xóa các nội dung của một bảng toàn bộ mà không thực hiện các bộ kích hoạt.|
|Độ phân giải tên tự nhiên||DB2 9.7 không yêu cầu |các khung nhìn nội tuyến. Ngoài ra,
các tên cột có thể dễ dàng thừa kế từ các toán tử set (tập hợp)
như UNION.
Điều này hoàn thành tổng quan về các thay đổi được thực hiện với DB2 để cho các ứng dụng Oracle gửi đi SQL dựa vào cơ sở dữ liệu có thể chạy hầu như không thay đổi. Tuy nhiên, có các phần chính của nhiều ứng dụng đang thực hiện tại chính máy chủ. Ngôn ngữ lựa chọn phía máy chủ cho các ứng dụng Oracle là PL/SQL. Không có sự khẳng định nào về tính tương thích có thể được thực hiện nghiêm túc mà không có sự hỗ trợ cho PL/SQL.
## DB2 hỗ trợ cho PL/SQL
Thông thường, khi một ứng dụng đang được chuyển từ một sản phẩm này sang một sản phẩm khác, ngôn ngữ SQL và ngôn ngữ thủ tục được dịch từ một phương ngữ SQL sang phương ngữ khác. Điều này đặt ra một số vấn đề:
- Mã dịch kết quả có xu hướng rắc rối do tự động hóa và sự không phối hợp đồng bộ giữa phương ngữ nguồn và phương ngữ đích.
- Các nhà phát triển ứng dụng không quen thuộc với phương ngữ SQL đích. Điều đó làm cho nó khó gỡ rối mã đã gửi đi. Theo thời gian, việc bảo trì tiếp theo trở thành một sự thách thức do sự thiếu các kỹ năng.
- Trong trường hợp của các ứng dụng đóng gói, việc dịch cần phải được lặp lại cho mỗi bản phát hành mới của ứng dụng.
- Cuối cùng, kết quả là một bản mô phỏng, theo định nghĩa thì nó chạy chậm hơn so với bản ban đầu.
Để tránh những vấn đề này, DB2 9.7 có hỗ trợ
**PL/SQL riêng**. Điều
này có nghĩa là gì?
Như bạn thấy trong Hình 3, máy DB2 bây giờ gồm một trình dịch PL/SQL bên cạnh trình biên dịch SQL PL. Cả hai trình biên dịch tạo mã máy ảo cho Máy chạy thực thống nhất SQL (Unified Runtime Engine) của DB2. Điều quan trọng cần lưu ý là các công cụ theo dõi và phát triển như Optim Development Studio được gắn vào trong DB2 ở mức máy chạy thời gian thực.
##### Hình 3. Hỗ trợ trình biên dịch PL/SQL
![ Hỗ trợ trình biên dịch PL/SQL trong Optim Development Studio](plsqlcompiler.gif)
Sự tích hợp của PL/SQL vào trong DB2 như là một ngôn ngữ thủ tục lớp đầu tiên có nhiều hàm ý:
- Không phải dịch. Mã nguồn vẫn giữ nguyên như nó đang có trong danh mục lược đồ.
- Các nhà phát triển có thể tiếp tục làm việc theo ngôn ngữ mà họ đã quen thuộc. Không có nhu cầu nào để di chuyển logic sang phương ngữ của DB2 thậm chí nếu logic mới được viết bằng SQL PL. Các thường trình sử dụng các phương ngữ khác nhau có thể gọi cho nhau.
- Các nhà cung cấp ứng dụng đóng gói có thể sử dụng một mã nguồn dựa vào cả Oracle lẫn DB2.
- Cả PL/SQL và SQL PL đều đưa ra mã máy ảo như nhau cho SQL Unified Runtime Engine của DB2. Do đó, theo thiết kế, cả PL/SQL lẫn SQL PL thực hiện ở cùng một tốc độ.
- Do hạ tầng của trình gỡ rối gắn trực tiếp vào SQL Unified Runtime Engine, nên PL/SQL được hỗ trợ tự nhiên bởi Optim Development Studio.
[Hình 4](#fig4) minh hoạ một phiên gỡ rối PL/SQL. Trình gỡ
rối này hỗ trợ các tính năng tiêu chuẩn như bước vào, bước ra và các điểm
ngắt (breakpoint). Ngoài ra, nó cho phép người dùng thay đổi các biến
PL/SQL tại chỗ trong khi chương trình đang chạy.
##### Hình 4. Hỗ trợ trình gỡ rối PL/SQL trong DB2
![ Hỗ trợ trình gỡ rối PL/SQL trong DB2](plsqldebugger.gif)
### Các chi tiết cú pháp PL/SQL
Vì vậy, sự hỗ trợ PL/SQL muốn nói chính xác điều gì? Trước tiên, có sự hỗ trợ cú pháp cốt lõi. DB2 hỗ trợ tất cả các cấu trúc chung của PL/SQL, chẳng hạn như:
- nếu thì, ngược lại (if then else).
- các vòng lặp while.
- := phép gán.
- các biến và hằng cục bộ.
- #PRAGMA EXCEPTION và xử lý các trường hợp ngoại lệ.
- Các dạng khác nhau cho các vòng lặp (phạm vi, con trỏ và truy vấn).
- %TYPE and %ROWTYPE giữ chặt các biến và các tham số cho các đối tượng khác.
- Các giao dịch #PRAGMA AUTONOMOUS, cho phép các thủ tục nào thực thi trong một giao dịch riêng.
### Hỗ trợ đối tượng PL/SQL
Có thể sử dụng PL/SQL trong các đối tượng khác nhau cho phép logic thủ tục:
- Các hàm vô hướng.
- Trước các bộ kích hoạt của mỗi hàng.
- Sau các bộ kích hoạt của mỗi hàng.
- Các thủ tục.
- Các khối ẩn danh.
- Các gói PL/SQL.
### Hỗ trợ các gói PL/SQL
Hầu hết PL/SQL trong các ứng dụng Oracle được chứa
trong cái gọi là Các gói (
*PACKAGE*). Một gói PL/SQL
—không lẫn với một gói DB2— là một bộ sưu
tập của các đối tượng riêng với khả năng phân biệt giữa các đối tượng có
thể truy cập bên ngoài và những đối tượng chỉ là các trình trợ giúp để sử
dụng bên trong gói. ANSI SQL tương đương với một gói được gọi là
*MODULE*. Bây giờ DB2 cung cấp hỗ trợ cho các mô đun SQL ANSI
cũng như các gói PL/SQL. Đặc biệt, cung cấp các khả năng sau đây:
- GÓI TẠO [HOẶC THAY THẾ] (CREATE [OR REPLACE] PACKAGE), xác định các mẫu ban đầu cho các thường trình nhìn thấy bên ngoài. Nó cũng xác định tất cả các đối tượng không theo thủ tục, nhìn thấy bên ngoài, như các biến và các kiểu.
- THÂN GÓI TẠO [HOẶC THAY THẾ] (CREATE [OR REPLACE] PACKAGE BODY), triển khai thực hiện tất cả các thường trình riêng và chung cũng như tất cả các đối tượng riêng khác.
- Trong một gói hoặc thân gói, các đối tượng sau đây có thể được định
nghĩa:
- Các biến và các hằng số.
- Các kiểu dữ liệu.
- Các ngoại lệ.
- Các hàm vô hướng.
- Các thủ tục.
- Các con trỏ.
- Khởi tạo gói.
- Các từ đồng nghĩa chung trên các gói.
## DB2 cung cấp các gói lập sẵn phổ biến
Một số các ứng dụng Oracle sử dụng các gói do RDBMS cung cấp. Đặc biệt, các thư viện cung cấp việc tạo báo cáo, e-mail hoặc truyền thông chéo có thể rất phổ biến. Để tạo điều kiện hỗ trợ các ứng dụng này cho DB2, DB2 cung cấp các gói được liệt kê trong Bảng 7:
##### Bảng 7. DB2 cung cấp các gói kèm theo
|Gói||Mô tả|
|DBMS_OUTPUT||Cung cấp các khả năng lập báo cáo cơ bản có thể bật hoặc tắt từ dòng lệnh.|
|UTL_FILE||Một mô-đun cho phép làm việc với các tệp trên máy chủ DB2.|
|DBMS_SQL||Một gói cung cấp một SQL API để thực hiện SQL động ngoài các câu
lệnh hiện có |
|UTL_MAIL||Một mô-đun cho phép gửi các thông báo e-mail từ SQL.|
|UTL_SMTP||Một mức API thấp hơn tương tự như UTL_MAIL tạo ra sự tích hợp SMTP.|
|DBMS_ALERT||Một gói, khi được sử dụng, cho phép các phiên làm việc khác nhau truyền tin bằng cờ hiệu với nhau.|
|DBMS_PIPE||Một mô-đun cho phép các phiên làm việc gửi từng dữ liệu khác nhau.|
|DBMS_JOB||Cung cấp một API tương thích tích hợp với bộ xếp lịch các nhiệm vụ của DB2.|
|DBMS_LOB||Một API của Oracle để xử lý LOB báo hiệu các hàm LOB lập sẵn của DB2.|
|DBMS_UTILITY||Một bộ sưu tập các thủ tục khác nhau được sử dụng trong các ứng dụng.|
## Các phần mở rộng JDBC cho riêng Oracle
JDBC là một giao diện khách hàng Java chuẩn. Tuy nhiên, có các phần mở rộng đã được thêm vào trình điều khiển JDBC của Oracle để hỗ trợ các kiểu dữ liệu không theo tiêu chuẩn riêng.
Để tối đa hóa mức độ tương thích với các ứng dụng dựa trên công nghệ Java, trình điều khiển DB2 9.7 JDBC cung cấp cùng với vài thứ khác, sự hỗ trợ cho các thủ tục gọi với con trỏ tham chiếu và các tham số VARRAY.
## Sự hỗ trợ của kịch bản lệnh SQL*Plus khi sử dụng CLPPlus
Đôi khi các kịch bản lệnh DDL và ngay cả các báo cáo được viết bằng cách sử dụng bộ xử lý dòng lệnh SQL*Plus. Để thuận tiện cho việc chuyển các kịch bản lệnh này cũng như các kỹ năng của người phát triển đang viết chúng, DB2 cung cấp một bộ xử lý dòng lệnh tương thích-SQL*Plus, được gọi là CLPPlus. Công cụ này có các chức năng sau:
- Các tuỳ chọn lệnh tương thích-SQL*Plus.
- Thay thế biến.
- Tạo định dạng cột.
- Các hàm lập báo cáo.
- Các biến điều khiển.
##### Hình 5. Công cụ CLPLus tương thích-SQL*Plus
![ Công cụ CLPLus tương thích SQL*Plus](clpplus.jpg)
## Cho phép DB2 kéo và thả càng dễ dàng càng tốt
Do sự liên kết chặt chẽ của DB2 với PL/SQL và Oracle SQL, bây giờ không cần thiết có một bộ công cụ chuyển dịch phức tạp. Thay vào đó, bạn có thể sử dụng Công cụ dịch chuyển dữ liệu của IBM (IBM Data Movement Tool) để đơn giản kéo và thả các bảng, các gói hoặc toàn bộ các lược đồ từ Oracle sang DB2. Chỉ cần các điều chỉnh tối thiểu trên cơ sở ngoại lệ hoặc di chuyển một ứng dụng sang DB2, hoặc sửa đổi một ứng dụng sao cho cùng một nguồn có thể hoạt động dựa vào cả DB2 và cả Oracle.
Các bước có thể đơn giản như:
- Thiết lập các biến đăng ký cần thiết:
db2set DB2_COMPATIBILITY_VECTOR=ORA
db2set DB2_DEFERRED_PREPARE_SEMANTICS=YES
- Khởi động lại trình quản lý cơ sở dữ liệu:
db2stop
db2start
- Tạo ra một cơ sở dữ liệu tương thích-Oracle:
db2 create database mydb pagesize 32 K
db2 update db cfg for mydb using auto_reval deferred_force
- Khởi động IBM Data Movement Tool và kết nối vào cơ sở dữ liệu Oracle
và DB2 (xem
[Hình 6](#fig6)). Một khi kết nối được thiết lập, bạn có thể chọn lấy ra chỉ DDL hoặc cả hai DDL và dữ liệu. Cuối cùng, bạn có hai lựa chọn: hoặc bạn triển khai trực tiếp bằng cách thực hiện các kịch bản lệnh đã tạo ra hoặc bạn tiếp tục với ô *triển khai tương tác*. (Cái sau được khuyến cáo cho hầu hết các ứng dụng không quan trọng).
##### Hình 6. Kéo và thả các lược đồ Oracle vào DB2 khi sử dụng IBM Data Movement Tool
- Di chuyển các lược đồ dự kiến từ Oracle sang DB2 khi sử dụng
*triển khai tương tác*(xem [Hình 7](#fig7)). Trong chế độ *triển khai tương tác*, bạn thấy một cây-dẫn hướng (nav-tree) hiển thị tất cả các đối tượng được trích ra từ cơ sở dữ liệu Oracle. Chọn tất cả các đối tượng và thực hiện tùy chọn trình đơn triển khai. Kết quả là, công cụ sẽ sao chép các đối tượng qua DB2 và ghi lại sự phát triển của nó. Một số đối tượng có thể không triển khai thành công và công cụ này cho phép bạn tùy chọn để làm việc với những đối tượng đó. Khi lựa chọn một đối tượng, bạn sẽ thấy DDL cùng với lỗi DB2 gặp phải. Lúc này bạn có thể sửa định nghĩa khi cần và triển khai lại bằng cách sử dụng trình soạn thảo lập sẵn. Mục đích là để chuyển dịch tương tác tất cả các đối tượng sang DB2 trên một cơ sở ngoại lệ.
##### Hình 7. Kéo và thả các lược đồ Oracle vào DB2 khi sử dụng IBM Data Movement Tool
## Đánh giá sự hỗ trợ cho DB2
Để cho phép ứng dụng của bạn chuyển sang DB2 9.7 dễ dàng vậy sao? Câu trả lời đương nhiên là, còn tùy. IBM có một công cụ bên trong có tên là MEET DB2, có thể phân tích tất cả các đối tượng trong cơ sở dữ liệu Oracle của bạn và cho điểm nó. Nó tạo một báo cáo về cái sẽ thực hiện và nơi cần điều chỉnh. Đại diện tài khoản IBM của bạn hoặc đầu mối bán hàng có thể chạy tiện ích này để giúp cung cấp nhanh chóng một đánh giá về khả năng tương thích của cơ sở dữ liệu Oracle hiện tại của bạn với DB2.
##### Hình 8. Công cụ báo cáo MEET DB2 cho việc đánh giá
![ Công cụ báo cáo MEET DB2 cho việc đánh giá](MEET-DB2.jpg)
Trong giai đoạn thử nghiệm beta một năm của bản DB2 9.7, nhiều ứng dụng với hơn 750.000 dòng mã PL/SQL đã được phân tích chi tiết với tỷ lệ chuyển đổi sử dụng được ngay trung bình là 90 đến 99%.
##### Hình 9. Tỷ lệ trung bình 98% cho các câu lệnh được hỗ trợ
![ Tỷ lệ trung bình 98% cho các câu lệnh được hỗ trợ](supportedrate.jpg)
## Các hạn chế
PL/SQL, thư viện gói kèm theo và CLPPlus hiện nay không có sẵn cho DB2Express, DB2 Express-C và DB2 Personal Editions (các ấn bản dành cho DB2 cá nhân).
## Tóm tắt
Nhờ trợ giúp của SQL nhiều phương ngữ vốn có, DB2 9.7 cho phép hỗ trợ dễ dàng các ứng dụng Oracle chuyển sang DB2. Các nhà cung cấp các ứng dụng đóng gói có thể đưa ra các ứng dụng của họ trên cả Oracle lẫn DB2 với chi phí phát sinh tối thiểu. Các khách hàng có thể tự do lựa chọn nhà cung cấp công nghệ họ cần, mà không bị hạn chế bởi các sự lựa chọn trong quá khứ.
Để thử nghiệm các tính năng này, bạn có
thể tải về một phiên bản dùng thử của DB2 9.7 (xem
[Tài nguyên](#resources)).
## Câu hỏi thường gặp
**Phiên bản nào của Oracle có hỗ trợ DB2 9.7?**
Mức độ bao phủ được tạo ra cho các phương ngữ SQL và PL/SQL hoàn toàn dựa vào những gì đang được các ứng dụng sử dụng. Có những tính năng đã được giới thiệu trong các bản phát hành gần đây như là Oracle 11g được hỗ trợ, trong khi một số cấu trúc có sẵn trong Oracle 8i không được hỗ trợ. Trong một nghiên cứu về 18 ứng dụng tổng cộng có trên 750,000 dòng, 90 đến 99% mã được chuyển sang DB2 mà không thay đổi. Nhiều việc điều chỉnh còn lại có thể được thực hiện tự động hoặc nếu không thì bằng tay.
**Ứng dụng Oracle của tôi sẽ chạy trên DB2 nhanh như thế nào?**
Đó là câu hỏi đáng giá triệu đô la! Thật không may, các điều khoản cấp phép của Oracle cấm bất cứ ai công bố kết quả thử nghiệm khi chưa được sự đồng ý trước bằng văn bản. Khỏi cần phải nói, chúng tôi đã không bận tâm phải hỏi. Tuy nhiên, bằng cách thiết kế riêng của mình và được xác nhận bằng việc kiểm tra so sánh bảo đảm chất lượng , một ứng dụng được viết dựa vào PL/SQL trên DB2 cũng nhanh như một ứng dụng được viết dựa vào SQL PL trên DB2. Các nhà cung cấp, những người đã qua qui trình hỗ trợ này đã ngạc nhiên vui vẻ.
**Nó đã cung cấp các tính năng này cho bao nhiêu công việc?**
Không giống nhiều như người ta có thể nghĩ. Một số công việc khởi đầu,
như
CONNECT BY và
NUMBER, đã làm việc với DB2 9.5 theo kiểu chiến thuật. Một
cách nghiêm túc, nỗ lực này đã được hoàn thành trong vòng ít hơn 18 tháng.
**Những khó khăn chung trong việc cho phép chuyển từ Oracle sang DB2 là
gì?**
Tính tương thích của DB2 không rõ ràng 100%. Như vậy có khả năng sẽ có
một số trục trặc khi lần đầu tiên bạn chuyển sang DB2. Tất nhiên, nhiều
khó khăn không quan trọng và dễ dàng sửa chữa. Ví dụ, DB2 hỗ trợ các bộ
kích hoạt PL/SQL, nhưng không cho phép kết hợp các hành động của bộ kích
hoạt. Đó là, một bộ kích hoạt được chia sẻ cho các hoạt động
UPDATE,
DELETE và
INSERT. Bây giờ, hãy đưa ra một bộ kích
hoạt nhiều hoạt động PL/SQL, thật khá dễ dàng để sao chép nó thành ba bộ
kích hoạt DB2 PL/SQL khi sử dụng một biến boolean để
INSERTED,
UPDATED và
DELETED.
## Tài nguyên
### Học tập
[Khởi chạy DB2 9.7](http://www.ibm.com/software/data/db2/lowerdatabasecosts/): Nhận một tổng quan về các giá trị của DB2. [Trò chuyện với phòng thí nghiệm](http://www.ibm.com/software/data/db2/9/labchats.html): Hãy nghe và xem các video về các chủ đề như là việc đi sâu vào kỹ thuật DB2 9.7 và một phiên bản webcast của bài viết này.
- "
[Chuyển sang DB2 dễ dàng](http://www.youtube.com/watch?v=NS1e0Nr-NNI)" (youTube): Thực hiện theo một trình diễn video về tổng quan của hỗ trợ ứng dụng DB2.
- "
[DB2 9.7 CLPPlus](http://www.youtube.com/watch?v=3PndCKWlpJk)" (youTube): Một video nào trình diễn cách sử dụng của trình tiện ích shell CLPPlus tương thích-SQL *Plus.
- "
[DB2 9.7: Hỗ trợ PL/SQL riêng](http://www.youtube.com/watch?v=EnpDMvobUmE)" (youTube): Xem một đoạn video ngắn giới thiệu nhiều tính năng PL/SQL được DB2 9.7 hỗ trợ.
- "
[Break Free with IBM DB2 9.7](http://www.youtube.com/watch?v=IAsvbX5aJBU)" (youTube): Xem một video về nhiều khách hàng và các giấy chứng nhận của đối tác. [Vùng Quản lý thông tin của developerWorks](http://www.ibm.com/developerworks/data/?S_TACT=105AGY75): Tìm hiểu thêm về Quản lý thông tin. Tìm tài liệu hướng dẫn kỹ thuật, các bài báo hướng dẫn, giáo dục, tải, thông tin sản phẩm và nhiều hơn nữa.
- Theo sát
[các sự kiện kỹ thuật và webcast của developerWorks](http://www.ibm.com/developerworks/offers/techbriefings/?S_TACT=105AGY75).
### Lấy sản phẩm và công nghệ
[DB2 9.7 for Linux, Unix, and Windows](http://www.ibm.com/developerworks/downloads/im/udb/learn.html?S_TACT=105AGY75): Tải về một phiên bản dùng thử miễn phí của DB2 9.7 cho Linux, Unix và Windows. [DB2 Express-C 9.7](http://www.ibm.com/developerworks/downloads/im/udbexp/learn.html?S_TACT=105AGY75): Tải bản DB2 Express-C 9.7, một phiên bản miễn phí của máy chủ cơ sở dữ liệu Express DB2 cho cộng đồng.
- Xây dựng các dự án
phát triển tiếp theo của bạn với
[phần mềm dùng thử IBM](http://www.ibm.com/developerworks/downloads/?S_TACT=105AGY75), có sẵn để tải về trực tiếp từ developerWorks.
### Thảo luận
- Tham gia vào
[developerWorks blogs](http://www.ibm.com/developerworks/blogs/?S_TACT=105AGY75)và dành tâm trí cho [cộng đồng developerWorks của tôi](http://www.ibm.com/developerworks/community?S_TACT=105AGY75); với hồ sơ cá nhân của bạn và trang chủ tuỳ chỉnh, bạn có thể tùy chỉnh developerWorks theo ý thích và tương tác với những người dùng developerWorks khác.
## Bình luận
[Vùng dữ liệu trên developerWorks](http://www.ibm.com/developerworks/vn/views/data/libraryview.jsp)
Khám phá các bài viết xoay quanh lĩnh vực dữ liệu, Quản lý hệ thống thông tin
[Vùng mã nguồn mở trên developerWorks](http://www.ibm.com/developerworks/vn/views/opensource/libraryview.jsp)
Xem các bài viết về HTML, CSS, JavaScript,...
[Điện toán đám mây](http://www.ibm.com/developerworks/vn/views/cloud/libraryview.jsp)
Tìm hiểu về điện toán đám mây

Content-Type: text/html; charset=UTF-8

Content-Language: en-US

Kp-eeAlive: timeout=10, max=99


text:
Thiết kế Vector cho các khu vui chơi, giải tríThứ Bảy, 25/05/2013, 08:19 GMT+7
Từ trước tới nay cá heo luôn là những người bạn của con người, chúng thường cứu người bị nạn khi đi biển. Ở các khu vui chơi giải trí thường lấy cá heo làm biểu tượng để in các tờ rơi, brochure, catalogue.
Bình luận
Các tin khác
Các tin mới
Tài liệu thiết kếMẫu thiết kế thẻ nhựa kinh doanh đẹp (08/07/2013 09:07)
- Mẫu thiết kế thiệp sinh nhật đẹp (05/07/2013 09:26)
- Mẫu thiết kế thẻ nhựa mùa hè sôi động (04/07/2013 09:03)

markdown:
##
Thứ Bảy, 25/05/2013, 08:19 GMT+7
[Thiết kế Vector cho các khu vui chơi, giải trí](http://www.inthenhua.com/thiet-ke-vector-cho-cac-khu-vui-choi-giai-tri-235.html)
Từ trước tới nay cá heo luôn là những người bạn của con người, chúng thường cứu người bị nạn khi đi biển. Ở các khu vui chơi giải trí thường lấy cá heo làm biểu tượng để in các tờ rơi, brochure, catalogue.
[Vector cá heo cho các khu vui chơi giải trí](http://www.inthenhua.com/tags/vector-ca-heo-cho-cac-khu-vui-choi-giai-tri.html), [Thiết kế Vector cho các khu vui chơi](http://www.inthenhua.com/tags/thiet-ke-vector-cho-cac-khu-vui-choi.html), [giải trí](http://www.inthenhua.com/tags/giai-tri.html), [vector background photoshop](http://www.inthenhua.com/tags/vector-background-photoshop.html), [Tài liệu thiết kế](http://www.inthenhua.com/tags/tai-lieu-thiet-ke.html) [vector background photoshop](http://www.inthenhua.com/l/vector-background-photoshop.html) [/ Tài liệu thiết kế](http://www.inthenhua.com/tai-lieu-thiet-ke.html)
## Bình luận
|
|
No avatar
|
|
|
|
## Các tin khác
|
|
|
|
|
|
|
|
|
|
## Các tin mới
|
|
|
|
|
|
|
|
|
|
[Vector cá heo cho các khu vui chơi giải trí](http://www.inthenhua.com/tags/vector-ca-heo-cho-cac-khu-vui-choi-giai-tri.html), [Thiết kế Vector cho các khu vui chơi](http://www.inthenhua.com/tags/thiet-ke-vector-cho-cac-khu-vui-choi.html), [giải trí](http://www.inthenhua.com/tags/giai-tri.html), [vector background photoshop](http://www.inthenhua.com/tags/vector-background-photoshop.html), [Tài liệu thiết kế](http://www.inthenhua.com/tags/tai-lieu-thiet-ke.html) [vector background photoshop](http://www.inthenhua.com/l/vector-background-photoshop.html) [/ Tài liệu thiết kế](http://www.inthenhua.com/tai-lieu-thiet-ke.html)
##
[Tài liệu thiết kế](http://www.inthenhua.com/tai-lieu-thiet-ke.html)
[Mẫu thiết kế thẻ nhựa kinh doanh đẹp](http://www.inthenhua.com/mau-thiet-ke-the-nhua-kinh-doanh-dep-270.html)(08/07/2013 09:07)
-
[Mẫu thiết kế thiệp sinh nhật đẹp](http://www.inthenhua.com/mau-thiet-ke-thiep-sinh-nhat-dep-269.html)(05/07/2013 09:26)
-
[Mẫu thiết kế thẻ nhựa mùa hè sôi động](http://www.inthenhua.com/mau-thiet-ke-the-nhua-mua-he-soi-dong-268.html)(04/07/2013 09:03)
##
[Giới thiệu](http://www.inthenhua.com/gioi-thieu.html)
[Báo Lao Động đưa tin về In Kỹ Thuật Số - Cuộc cách mạng trong ngành in](http://www.inthenhua.com/bao-lao-dong-dua-tin-ve-in-ky-thuat-so-cuoc-cach-mang-trong-nganh-in-201.html)(05/04/2013 09:57)

Set-Cookie: CONGSO=ctho1gjoh8l0dmlt2rr87g5be2; expires=Fri, 19-Dec-2014 17:33:17 GMT; path=/; HttpOnly


text:
Nếu bạn không quen ai làm trong ngành hàng không thì hãy làm theo một số lời khuyên sau để mua được vé máy bay giá rẻ.
Hãy cập nhập tin tức về vé máy bay qua bản tin và báo chí. Hãy nhớ để ý đến những thời gian khuyến mại của các hãng hàng không và tranh thủ lúc đó.
Hãy linh hoạt trong giờ giấc bay. Thứ ba, thứ tư và thứ bảy thường là ngày bay rẻ nhất. Những chuyến bay muộn buổi đêm, hay sáng sớm và chuyến bay với các điểm dừng cũng thường là giá rẻ hơn.
Hãy hỏi hãng hàng không liệu có cung cấp chương trình du lịch kèm theo để tiết kiệm hơn. Ví dụ, như phòng khách sạn và xe đưa đón có được giảm giá nếu đặt trước cùng vé máy bay?
Hãy chú ý đến phí sân bay và thuế, và hỏi thêm về các lựa chọn cho chuyến bay. Nếu có mạng thì bạn hãy so sánh phí và giá cả với các web khác.
Hãy hỏi về vé giá rẻ nếu bạn đi du lịch trái mùa. Mùa du lịch không phải là thời điểm tốt để tìm vé giá rẻ, vì hầu hết các hãng hàng không đã kín chỗ, khó có được chỗ trống.
Mua vé qua các hãng đại lý, như thế bạn sẽ có được giá rẻ hơn, vì các đại lý thường mua số lượng lớn vé và bán chiết khấu.
Đăt vé sớm. Bạn có thể đặt vé giá rẻ sớm trước khoảng 21 ngày để dự trù, thậm chí sớm hơn cho những kì nghỉ lễ tháng 11 và 12. Bạn có thể được chiết khấu qua các hãng đại lý.
Cũng đi hãng hàng không đấy khi trở về để nhận được khuyến mại chiết khấu cho cả chuyến bay.
Với những lời khuyên trên, chúc bạn tìm được những vé máy bay giá rẻ để có được dịp du lịch tiết kiệm mà vui vẻ với gia đình và bạn bè.
Thiết kế web bán hàng
Đăng ký tên miền
Doanh nhân
Tên miền miễn phí
Email Marketing
Phần mềm bán hàng
y tuong kinh doanh
kinh nghiệm bán hàng
nuoi bo cau
Cách tết tóc đẹp
Cách làm trắng da
Chăm sóc da mặt
Tổ chức đám cưới
Cách tán gái
Cách trang điểm nhẹ
Giảm cân hiệu quả
Xem tử vi
Handmade
Váy công sở
Chuyện hẹn hò
Sinh con trai
Mon ngon moi ngay
cách nấu bò kho
cách búi tóc đẹp
cách hôn
suon xao chua ngot
toc xoan
cách làm giá đỗ
sinh con trai
cắm hoa nghệ thuật
that bim toc
làm đồ handmade
Cúng rằm tháng 7
lễ vu lan
áo crop top
cách nấu bún bò huế
lau thai
cach lam giau
nhung kieu toc ngan dep
cách cắm hoa đẹp
cho chihuahua
Địa chỉ: 442 Đội Cấn, Phường Cống Vị, Quận Ba Đình, Hà Nội - ĐT: 04 66558868 - Fax: 04 37868904
Giấy phép số 1669/GP-STTTT do Sở Thông tin và Truyền thông Hà Nội cấp ngày 12/06/2014.


text:
- Người đại diện theo pháp luật của doanh nghiệp
- Quyền của doanh nghiệp theo luật doanh nghiệp 2014
- Điểm nổi bật của Luật doanh nghiệp 2014
- Một số điểm mới của Luật nhà ở sửa đổi 2014
- Thẻ tạm trú và ký hiệu các loại thẻ tạm trú
- Thị thực và ký hiệu các loại thị thực (Visa)
- Hợp đồng góp vốn kinh doanh, một số điểm lưu ý
- Quy định về hợp đồng góp vốn vào công ty
- Chủ thể của tội tham ô tài sản trong luật hình sự
- Những điểm mới của Luật công chứng 2014

markdown: [Người đại diện theo pháp luật của doanh nghiệp](http://www.luatdongdo.vn/details/nguoi-dai-dien-theo-phap-luat-cua-doanh-nghiep) [Quyền của doanh nghiệp theo luật doanh nghiệp 2014](http://www.luatdongdo.vn/details/quyen-cua-doanh-nghiep-theo-luat-doanh-nghiep-2014) [Điểm nổi bật của Luật doanh nghiệp 2014](http://www.luatdongdo.vn/details/diem-noi-bat-cua-luat-doanh-nghiep-2014) [Một số điểm mới của Luật nhà ở sửa đổi 2014](http://www.luatdongdo.vn/details/mot-so-diem-moi-cua-luat-nha-o-sua-doi-2014) [Thẻ tạm trú và ký hiệu các loại thẻ tạm trú](http://www.luatdongdo.vn/details/the-tam-tru-va-ky-hieu-cac-loai-the-tam-tru) [Thị thực và ký hiệu các loại thị thực (Visa)](http://www.luatdongdo.vn/details/thi-thuc-va-ky-hieu-cac-loai-thi-thuc-visa) [Hợp đồng góp vốn kinh doanh, một số điểm lưu ý](http://www.luatdongdo.vn/details/hop-dong-gop-von-kinh-doanh-mot-so-diem-luu-y) [Quy định về hợp đồng góp vốn vào công ty](http://www.luatdongdo.vn/details/quy-dinh-ve-hop-dong-gop-von-vao-cong-ty) [Chủ thể của tội tham ô tài sản trong luật hình sự](http://www.luatdongdo.vn/details/chu-the-cua-toi-tham-o-tai-san-trong-luat-hinh-su) [Những điểm mới của Luật công chứng 2014](http://www.luatdongdo.vn/details/nhung-diem-moi-cua-luat-cong-chung-2014)

Content-Type: text/html

Cache-Control: max-age=600, private, must-revalidate


text:
Giá: 3.700.000 VNĐ
Hãng sản xuất: Sony / Loại ống kính: Ống Tele có Zoom / Lấy nét: AF / Khẩu độ: 4.5-5.6 / Khoảng cách chụp gần nhất: 1.5m / Trọng lượng: 500g .
Giá: 3.700.000 VNĐ
Hãng sản xuất: Sony / Loại ống kính: Ống Tele có Zoom / Lấy nét: AF / Khẩu độ: 4.5-5.6 / Khoảng cách chụp gần nhất: 1.5m / Trọng lượng: 500g .

WARC-Truncated: length

P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"

Content-Encoding: x-gzip

X-Content-Encoded-By: Joomla! 1.5

Cache-Control: post-check=0, pre-check=0

Pragma: no-cache

Set-Cookie: ja_sanidineii_light_tpl=ja_sanidineii_light; expires=Wed, 09-Dec-2015 12:28:46 GMT; path=/

Vary: User-Agent


markdown:
Nếu video tải chậm quý Phật tử vui lòng tải lại trang bằng cách bấm phím F5 1 hoặc nhiều lần để xem nhanh hơn.
Nam mô A Di Đà Phật
Nam mô đại từu đại bi cứu khổ cứu nạn Quán Thế Âm Bồ Tát
Mẹ quan thế âm từ bi
Mình góp ý:Tại sao đạo phật ở nước mình rất nhiều bài giãng đạo hay của nhiều thây và phim phật,phim phóng sự chùa chiền,phật pháp nhiệm màu,nhạc cải lương phật v.v.v.mà sao mình không thấy phật tử nào kinh doanh bán ĐVĐ tại địa điểm quan trọng chẵng hạn như:tại sân bay,và ga xe lửa,xe bus,,,,nếu bạn phật tử nào có kinh doanh bán ĐvĐ bài giãNG của mấy thầy v.v. cần giới thiệu các trang mạng để cho phật tử các nước biết để mua tặng cho bà con xem nha.huy vọng công ty pháp quang lập dành riêng một trang web riêng gióng như trang web này bán phim bài giãng đạo của mấy thầy v.v.,
Nam mo a di da phat.
Thanh that cam on Thay Hanh Hue, ban to chuc va cac ban da chia xe nhung su huyen dieu cua "Me quan the am"...
Co rat nhieu nguoi da thanh tam cau nguyen da duoc het binh.....het nhung nghiep chuong tu vo luong kiep...
Khi cac ban phat tu nhiep tam niem phat, tri chu kinh dai bi, du khong co binh hoan gi, nhung cac ban phat tu se nhan duoc than tam rat an lac...rat hanh phuc trong cuoc song hang ngay...."BAT KHA TU NGHI".....
Chuc cac ban phat tu thanh cong.
Tam Nguyen

Set-Cookie: watched_video_list=NzQ5NA%3D%3D; expires=Sat, 20-Dec-2014 13:37:15 GMT; path=/video/

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Vary: Accept-Encoding,User-Agent


text:
English
Giới thiệu
Công ty thành viên
Giàn khoan
Dịch vụ
Quan hệ cổ đông
Nhân sự - Đào tạo
HSEQ
Tin tức
Tin tức
Nghị quyết HĐQT về việc Phê duyệt phương án mua cổ phiếu quỹ
(18/12/2014)
Tổng Công ty Cổ phần Khoan và Dịch vụ Khoan Dầu Khí trân trọng thông báo đến Quý cổ đông Nghị quyết Hội đồng quản trị PV Drilling về việc phê duyệt phương án mua cổ phiếu ...
Xem tiếp
PV Drilling sẽ nỗ lực để bảo đảm sự tăng trưởng ổn định
(12/12/2014)
Năm 2014, Tổng CTCP Khoan và Dịch vụ khoan Dầu khí đạt được kết quả sản xuất - kinh doanh ấn tượng, thị giá cổ phiếu PVD trên TTCK tăng trưởng cao
Xem tiếp
Thư chúc mừng nhân dịp kỷ niệm 13 năm ngày thành lập Tổng Công ty Cổ phần Khoan và Dịch vụ Khoan Dầu khí
(27/11/2014)
Nhân dịp kỷ niệm 13 năm ngày thành lập Tổng Công ty Cổ phần Khoan và Dịch vụ Khoan Dầu khí (26/11/2001 - 26/11/2014)
Xem tiếp
Giàn khoan
Giàn khoan biển Jack-up
Giàn khoan đất liền
Giàn khoan nước sâu
Đoàn thể
Sơ đồ website
Điều khoản sử dụng
Liên hệ
Webmail
Địa chỉ:
Lầu 4,
Sailing Tower,
số 111A đường Pasteur, Phường Bến Nghé
, Quận 1, Thành phố Hồ Chí Minh
Tel:
+84-8-39 142 012 (7 lines) -
Fax:
+84-8-39 142 021 - 39 142 022 -
Website:
www.pvdrilling.com.vn
© Copyrights 2013 PVD - Site by
Time Universal.
4,048,779
Lượt truy cập